Berkeley DB Java Edition 3.3.82 is a patch release consisting of fixes for a number of significant issues. We strongly recommend that users of the 3.3.x version upgrade to this release.
There are several issues that are critical for applications using deferred write (aka temporary databases), XA, the shared environment cache, a single transaction in multiple threads, or large sets of duplicates.
These critical fixes are below:
* Fix a bug that could cause a LogFileNotFoundException when using an XAEnvironment, if a prepared transaction is not ended prior to a crash and then the prepared transaction is aborted after recovering from a crash. [#17022] (3.3.79)
* Fix a bug that prevented deferred-write record deletions from being made durable by Database.sync, if a crash occurs after Database.sync but prior to the next checkpoint. Under rare circumstances this could also result in a LogFileNotFoundException later when accessing the deleted entry. [#16864] (3.3.78)
* Fix a bug that prevents log cleaning from functioning properly when a temporary DB (DatabaseConfig.setTemporary) is large enough to overflow the JE cache. Also fix a bug that could in rare cirumstances cause an endless loop while performing log cleaning. [#16928] (3.3.78)
* Fix a bug that caused an infinite loop under certain timing dependent circumstances when using EnvironmentConfig.setSharedCache(true). This bug was reported in two different forum posts (http://forums.oracle.com/forums/thread.jspa?threadID=832695 & http://forums.oracle.com/forums/thread.jspa?messageID=3275138). [#16882] (3.3.78)
* Fix a bug that caused NullPointerException when opening an XAEnvironment under certain circumstances, when prepared but uncommitted transactions are present in the JE log and must be replayed during recovery. [#16774] (3.3.77)
* Fix a bug that caused LogFileNotFoundException in rare circumstances for an Environment having one or more Databases configured for duplicates (or one or more SecondaryIndexes with MANY_TO_XXX relationships). The bug only occurs when a single secondary/duplicate key value is associated with a large number of records/entities; specifically, the sub-Btree for a single duplicate key value must have at least 3 levels. [#16712] (3.3.76)
* Fix a bug that caused BufferOverflowException while writing transactional records. This could occur if multiple threads were writing to an environment while using the same Transaction. [#17204]
The complete list of changes can also be found in the change log page.
http://www.oracle.com/technology/documentation/berkeley-db/je/changeLog.html
Product documentation can be found at:
http://www.oracle.com/technology/documentation/berkeley-db/je/
Download the source code including the pre-compiled JAR, complete documentation, and the entire test suite as a single package.
http://download.oracle.com/berkeley-db/je-3.3.82.zip
http://download.oracle.com/berkeley-db/je-3.3.82.tar.gz