ObjectDB Release Log
Version 2.9.2_01
- Fixed unstable activation issues.
Version 2.9.2
- Added support of the Jakarta Persistence package names (jakarta.persistence).
Note: Support of javax.persistence continues in this version, using separate jar files.
Use Java 8 or above with the javax variant and Java 17 or above with the jakarta variant. - Added Java 9 module support for the ObjectDB Jakarta variant.
- Added support of using ObjectDB in Jakarta EE 10.x application servers.
- Added support of using ObjectDB in Spring Framework (MVC) 6.x and Spring Boot 3.x.
- JDO updated to API version 3.2.1 (API only, no new functionality).
Note: JDO is not expected to be included in ObjectDB 3.0. Applications should be updated to JPA. - Removed old tutorials from the development kit distribution.
Version 2.9.1
- Added support of embedded path expressions to
mappedBy
fields (issue #2917) - Fixed the SectionClassifier retrieval bug (issue #2912).
- Fixed log file location for some server log messages (issue #2914).
Version 2.9.0
- Added a new Doctor.run(srcPath, dstPath) static method.
- Added an option to exclude inherited @Id fields in embeddable classes.
- Added support for manual starting of online backup threads (feature request #2855).
- Added support for distinct mapped-by (inverse) fields.
- Improved query plan evaluation.
- Improved automatic schema evolution of enum fields.
- Improved exception throwing from tool threads.
- Improved the error message on exception during commit, reported in issue #2882.
- Fixed A
NullPointException
when using EntityManagerFactory with different class loaders. - Fixed a missing call to
@PostUpdate
when object change is detached by JDOHelper.makeDirty
. - Fixed a bug of classifying inherited inverse fields as dependent.
- Fixed improper use of indexes on collections of embedded objects (issues #2858 and #2859).
- Fixed a
java.lang.ArithmeticException
: / by zero error on query execution. - Fixed a bug in applying
OrderBy
annotation. - Fixed opening context menu in the Explorer.
Version 2.8.9
- Added support of enhancing classes with Java 11 dynamic constants.
- Added a warning if an expired activation is found in the configuration (issue #2817).
- Fixed the error message when required enhancement is missing (issue #2828).
- Fixed recording of large transactions over 2GB in size (issue #2834).
- Fixed a bug in executing compound range queries using an index (issue #2853).
- Fixed a bug in automatic conversion of embedded objects to collections.
- Fixed a bug in leaving a snapshot.
Version 2.8.8
- Added initial support of Record entities.
- Implemented a new query method: containsAnyKey.
- Improved field type error and internal error messages.
- Improved the Doctor output.
- Fixed a bug in using inner classes for query results.
- Fixed an error due to to an unused type referencing a deleted type.
- Fixed a primary key query issue.
- Fixed a bug in comparing embedded objects in queries (issue #2750).
- Fixed an error on closing an
EntityManager
with non-comitted flushed transaction (issue #2794). - Fixed an enum optimization regression (issue #2794).
- Fixed a temporary files locking issue on Linux (issue #2794).
Version 2.8.7
- Added an option to slow backup (see feature request #2681).
- Added an option to view old type versions in the Explorer (-Dobjectdb.ui.debug=true)
- Improved the Doctor (see issue #2691).
- Improved performance following a large eager fetch (issue #2694).
- Restricted waiting time on closing a database on a server to 2 seconds(see issue #2686).
- Fixed a bug in the new option to slow backup in client-server mode (see feature request #2681).
- Fixed Explorer issue after schema evolution (issue #2726).
- Fixed field renaming schema upgrade of previous schema versions (issue #2713).
Version 2.8.6
- Fixed an issue with viewing class Ids in the Explorer (see issue #2677).
- Fixed a regression bug (in version 2.8.5) in using AS in JOIN (issue #2666).
- Fixed a connection pool issue related to memory release (issue #2663).
- Fixed an Enhancer issue in supporting Java 9 modules and packages (issue #2657).
- Fixed a regression bug in handling missing obsolete entity classes (issue #2650).
- Added logging for server connections (see issue #2645).
- Changed how the server handles stop requests (see issue #2645).
Version 2.8.5
- Fixed a bug in using AS in SELECT NEW (breaks some Spring Data JPA queries).
- Fixed a bug in tracking changes to new collections after flush (issue #2640).
- Fixed a StackOverflowError on no access permission to objectdb.conf (issue #2643).
- Fixed a bug in managing pessimistic locks after using LockModeType.NONE.
- Fixed a bug in recovery from an exception during inverse (mapped-by) retrieval.
- Improved recovery from partial deletion of class hierarchy in the Explorer.
Version 2.8.4
- Fixed a critical bug that may cause collisions between schema versions (issue #2621).
- Fixed unsupported unwrap to throw _PersistenceException (a subclass of PersistenceException).
- Fixed an Explorer bug in presenting composite IDs.
- Fixed a bug in using date and time query parameters in the Explorer (issue #2587).
- Fixed a bug in using local dates with BETWEEN in queries (issue #2583).
- Fixed an "Activator requires Java 6 or above" error on some JDKs (issue #2604).
- Improved the process of creating objects in the Explorer (feature request #2602).
- Fixed a performance issue in viewing class instances in the Explorer (issue #2601).
- Fixed an Explorer bug of viewing query results in tables (issue #2600).
- Fixed a bug in using trailing '_' wildcard in LIKE queries (issue #2576).
- Removed exceptions due to closing the database connection during index update (issue #2571).
- Added support for a new query hint for setting a preferred variable processing order (issue #2379)
Version 2.8.3
- Added support of Java 8 date and time types (issues #1495, #2564).
- Added information in the Explorer on consumed database space (feature request #2540).
- Fixed handling enum types that implement interfaces in the Explorer (Issue #2542).
- Improved memory cleaning when entity objects with embeddable elements are detached.
- Improved handling query results that include managed hollow objects.
- Removed false alarms by the Doctor.
- Fixed a deadlock (issue #2512) on closing EntityManager and its factory concurrently.
- Solved a possible issue with closing the ODB-WeakRefPurger daemon thread.
Version 2.8.2
- Added support of deleting classes in the Explorer.
- Improved memory cleaning when entity objects with embeddable elements are detached.
- Improved handling query results that include managed hollow objects.
- Removed false alarms by the Doctor.
- Fixed a deadlock (issue #2512) on closing EntityManager and its factory concurrently.
- Solved a possible issue with closing the ODB-WeakRefPurger daemon thread.
Version 2.8.1
- Improved query plan evaluation (including for selecting composite indexes).
- Fixed new statistics collection for queries.
- Fixed a bug in LEFT OUTER JOIN queries (issue #2438).
Version 2.8.0
- Improved query plan evaluation and selection (issue #2379, issue #2417).
- Increased the number of combinations examined by the query planner (issue #2379).
- Excludes old unused classes in the database from licence limits (issue #2412).
- Added an option to select a query plan using a query hint (see issue #2379).
- Added logging when the number of allowed entity classes is exceeded (feature request #2412).
- Added logging to diagnose unexpected duplicate index entry (issue #2403).
- Fixed a bad optimisation in query execution (issue #2432).
- Fixed an activation issue with some Java versions.
- Fixed an InternalException (issue #2153, see also issue #2027).
- Fixed long compilation time of queries with many (>10) JOINs (issue #2423)
- Fixed the new option in 2.7.6_01 to select a query plan using a query hint (see issue #2379).
- Fixed a critical bug in index based query execution (issue #2414).
- Fixed a bug in loading a TreeSet lazily (issue #2407).
- Fixed an unexpected internal exception in query result cache (issue #2406).
Version 2.7.6
- Added support of an option to disable broken reference cleaning in the Doctor (feature request #2341).
- Added support of cascading delete using JDO (feature request #2329).
- Added logging for "Failed to read from file" error (issue #2322).
- Added an option for eager background purge of weak references (issue #2302).
- Added support of filtering mapped-by (inverse) relationship results using a constraint.
- Changed to-one mapped-by (inverse) relationship with multiple matching to always take the first.
- Changed query optimisation to prefer set retrieval during query execution.
- Improved eager fetch mechanism to avoid unnecessary repeated operations.
- Improved performance of reflection mode (no enhancement) by minimising tracking backups.
- Improved concurrency by using lock free Synchronization (issue #2327).
- Fixed a regression optimistic lock exception bug (due to fix of issue #2280).
- Fixed a regression bug on remove and persist of an object in the same transaction (issue #2027).
- Fixed a bug in UPDATE queries that modify more than 10000 objects (issue #2355).
- Fixed a NullPointerException (issue #2302, post 43).
Version 2.7.5
- Improved recovery from failure when recovery is enabled with no sync (issue #2293).
- Added support of using JDO listeners with JPA EntityManager.
- Added debug logging got persist cascading (issue #2299).
- Fixed a bug in restricting server access to a range of IPs (issue #2292).
- Fixed a bug in comparing array fields against parameters in queries (issue #2289).
- Fixed a bug in retrieving new objects of other transactions after flush (issue #2280).
- Fixed a bug in version 2.7.4 in automatic primary key setting.
- Fixed a disabled delete for null values in the Explorer (issue #2249).
- Fixed a ClassCastException in using Tuple.get on a criteria query path (issue #2200).
Version 2.7.4
- Fixed a bug in persisting objects with same ids in a class hierarchy in one transaction.
- Fixed a bug in using JDO Extent of a super class with shared primary key values in subclasses.
- Added a warning if a JDO SingleFieldIdentity class is used as a primary key field type.
Version 2.7.3
- Fixed a bug in query execution optimization (issue #2170).
- Fixed cascading delete through unloaded (lazy) relationships.
- Fixed a NullPointerException when using "objectdb.temp.page-file" (issue #2163)
- Added logging and suspend exception for issue #2153.
- Fixed a bug in using SIZE with <= on dates in queries.
- Fixed a bug in schema evolution of indexes.
- Fixed a new false alarm of the Doctor, since 2.7.2 in index checking.
- Fixed a bug in activating a new composite index on new embedded objects.
- Fixed a bug in queries with duplicate values in an IN constraint (issue #1107).
Version 2.7.2
- Added initial support for Java 9.
- Attempt to fix (currently a workaround) and log the nested section key bug (issue #2127).
- Fixed a bug in queries of the form "SELECT o FROM ... WHERE o == :arg"
- Fixed a bug in displaying inverse (mapped by) relations in the Explorer.
- Fixed a bug in reusing database space after removing an index.
- Improved error message on attempt to enhance a class in a jar file in place.
- Fixed a ClassCastException in query selection of embedded object and array fields.
- Fixed an InternalException on some JDO delete queries.
- Fixed a bug in processing a new index definition to a new defined embeddable class.
- Fixed a possible collision of using multiple servers with a shared temp directory.
- Fixed an error message in processing an invalid index.
- Fixed index definitions change exception.
- Fixed reflection mode issues (issue #2086, issue #2087).
- Fixed an Explorer bug in adding objects to collections (issue #2078).
- Fixed a Doctor error message on mismatching index entries.
- Improved using em.find with mismatching (but convertible) key type.
- Added an option for possibly improved concurrent database file access.
- Added automatic logging of query details on internal errors.
- Added configuration path writing to log on database opening.
Version 2.7.1
- Fixed a critical bug that may cause database corruption (issue #1977).
- Improved error messages on entity operation exceptions.
- Fixed a NullPointerException on cascading persist throw an unloaded collection (issue #2049).
- Fixed the location of a temporary file for index update (issue #2050).
- Fixed a bug in schema evolution of non entity class to entity class in multi level hierarchy.
Version 2.7.0
- Extended maximum supported entity object size to nearly 2GB.
- Added a temporary system property to disable "enhancement ... is old" checks.
- Fixed a bug in handling remove and persist of the same object in one transaction (issue #2027).
- Fixed objectdb.jar to include META-INF/MANIFEST.MF as the first entry (required by Apache Karaf).
- Fixed a cache bug in repeating some sorts of LIKE queries with different parameters.
- Fixed a NullPointerException bug in automatic building of new indexes.
- Fixed a NullPointerException in running the Doctor when new indexes have to be built (issue #1959).
- Fixed a schema evolution bug in handling hierarchy change.
- Fixed setting JDO's "javax.jdo.option.IgnoreCache".
- Fixed JDO exception on invoking currentTransaction on a closed PersistenceManager.
- Fixed an "Enhancement ... is old" bug on overriding persistent properties with a different return type.
- Fixed a bug in using java.lang.Enum as a field/property type (and not a specific enum type).
- Fixed a critical "Enhancement ... is old" bug when using property access mode (making enhancement unusable).
- Fixed an "Attempt to modify a primary key" bug when using property access mode.
- Fixed a bug in allowing page sizes larger than 64KB (which are not supported by ObjectDB).
- Fixed an issue of very slow online backup.
Version 2.6.9
- Added support for integration with WebSphere / Liberty application server.
- Fixed deleting large transaction temporary files (in the experimental large transactions feature).
- Fixed empty log directory creation when logging is disabled.
- Fixed a bug in using nested embedded objects.
- Fixed a query cache InternalException.
- Fixed JDO PersistenceManager's newObjectIdInstance to support classes with no ID class.
- Fixed a NullPointerException due to unexpected null SharedCacheMode in PersistenceUnitInfo.
- Fixed a bug in removing a modified flushed entity object.
Version 2.6.8
- Added JPA XML validation schema files to Maven/JEE objectdb.jar.
- Added automatic release of pessimistic locks on client-server connection failure.
- Fixed an OptimisticLockException bug on commit after flushing a removed modified entity object.
- Fixed a NullPointerExeption on new index building.
- Fixed a NullPointerExeption on flush (issue #1840).
- Fixed a bug in using temporary files in large transactions.
- Reverts a change in 2.6.6_08 that may cause issue #1839.
- Attempt to fix a bug in using temporary files in large transactions.
Version 2.6.7
- Added an option to write javaagent enhanced classes to file (for diagnosis).
- Extended temporary files support to update queries (issue #1658).
- Improved performance of handling multi activations configuration.
- Fixed a synchronization bug in using temporary files in large transactions.
- Fixed a bug in using @TableGenerator / GenerationType.TABLE.
- Fixed handling classes with no persistent fields in new automatic activation of indexes.
- Fixed a regression bug due to changing references to weak in 2.6.4_04 (issue #1658).
- Fixed a bug in enhancing an entity class with static reference to Log4j.
- Fixed a bug in loading TreeSet and TreeMap fields.
- Fixed Explorer to show error message on non existing referenced objects.
- Fixed a bug in stopping an ObjectDB Server in SSL mode from another process (issue #1804).
Version 2.6.6
- Added support of automatic activation of new indexes (issue #19).
- Fixed a bug in multi variable queries (issue #1801).
- Fixed an Explorer exception when a field in a summary view is not included in the tree/table view.
- Fixed a bug in caching Criteria query programs with IN operator.
- Fixed a bug in handling embedded objects in queries.
- Fixed a bug in ordering query result by an expression that is used in IN operator.
- Fixed a bug in handling pure date and time values.
- Fixed a bug in handling some types of collection and map queries in version 2.6.5.
Version 2.6.5
- Added optional (experimental) support of using clients with different object model versions.
- Changed references to new flushed objects from ObjectDB to weak references.
- Cancelled an exception on cascading removal of an already removed object.
- Renamed internal Enhancer hidden methods to non property method names.
- Fixed a bug in retrieving pure time values (java.sql.Time).
- Fixed a bug in MEMBER OF queries on embedded objects.
- Fixed a bug in querying indexed nested embedded objects.
- Fixed a bug in querying enhanced embeddable classes.
- Fixed server crash on exceeding maximum number of connections specified in configuration.
- Fixed optimistic lock exception on removing of a flushed modified entity in the same transaction.
- Fixed temporary file management for very large transactions (feature request #1658).
- Fixed a bug in persisting dates (TemporalType.DATE) based on time close to clock change.
- Fixed a bug in indexing java.sql.Date fields during time / time zone change.
- Fixed a bug in detachment of embedded objects (if enabled).
Version 2.6.4
- Added memory only database mode.
- Added an option to cascade detachment to embedded objects.
- Added an option to disable reuse of database page objects.
- Improved release of query resources.
- Improved memory management in multi flush transactions.
- Extended detachment of embedded objects to collections.
- Fixed large transaction temporary files implementation (feature request #1658).
- Fixed a bug in handling large objects with long primary keys as query results (issue #1717).
- Fixed detachment of embedded objects to collections.
- Fixed database page objects reuse to release to be cleared on EntityManagerFactory close.
- Fixed a bug in hierarchy schema upgrade.
- Fixed a bug in schema upgrade that includes both class and field renaming.
Version 2.6.3
- Added an option to disable some query execution optimizations.
- Added an option to exclude persistence aware enhancement (feature request #1683).
- Added an option to use temporary files for very large transactions (feature request #1658).
- Fixed an online backup bug (no access during backup operation).
- Fixed JOIN FETCH bugs.
- Fixed a performance issue with mapped by fetch.
- Fixed the ObjectDB Maven repository and Maven examples to work with TomEE.
- Fixed handling merge of an entity with PK == 0 (issue #1667).
Version 2.6.2
- Added support of entity classes with missing implemented interfaces in the Explorer.
- Added method com.objectdb.Utilities.newTrackable(em, cls) for improved performance.
- Added a temporary workaround for NullPointerException on query after flush (issue #1623).
- Improved title of query result windows in the Explorer.
- Changed the Enhancer to return non zero exist code on errors (issue #1635).
- Fixed a NullPointerException on concurrent access of first object of an entity class.
- Fixed bug in using EnumType.STRING based enum collection as a query parameter (issue #1639).
- Fixed a synchronization bug (issue #1643).
- Fixed a regression of build 2.6.1_03 in supporting interfaces in the Explorer.
- Fixed a bug in updating a collection field after GC of the containing entity (issue #1620).
- Fixed a bug in queries on map fields.
- Fixed a bug in updating an embedded object after GC of the containing entity (issue #1620).
- Fixed a bug incascading detach through unloaded inverse (mapped by) collection.
Version 2.6.1
Version 2.6.0
- Added support of JPA 2.1 persistence.xml and orm.xml formats.
- Added implementation of equals to JPA Metamodel attributes.
- Fixed ObjectDB OSGi bundle to support enhanced classes.
- Fixed handling class loader switch (avoiding automatic database close and reopen).
- Fixed a NullPointerException on cascading persistence through a mapped by collection (issue #1563).
- Fixed a bug in using enhanced entity classes with is (boolean) persistent properties (issue #1561).
- Fixed porting to Java 8 of database file withunexpected HashMap.Entry as a listed type.
- Fixed return type of SUM queries on BigDecimal field (issue #1556).
- Fixed a client activation issue when accessing JPA Metamodel before connecting to a server.
- Fixed a NullPointerException during close (issue 1531).
- Fixed refresh of a new managed entity object after flush.