ObjectDB ObjectDB

ObjectDB Change Log

Version 2.8.9_07

  • Improved the error message on exception during commit, reported in issue #2882.
  • Improved automatic schema evolution of enum fields.
  • 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 opening context menu in the Explorer.

Version 2.8.9_06

  • Added a new Doctor.run(srcPath, dstPath) static method.

Version 2.8.9_05

  • Added an option to exclude inherited @Id fields in embeddable classes.

Version 2.8.9_04

  • Improved exception throwing from tool threads.

Version 2.8.9_03

  • Improved throwing exceptions from tool threads.

Version 2.8.9_02

  • Added support for manual starting of online backup threads (feature request #2855).
  • Improved query plan evaluation.
  • Fixed a regressing performance issue in build 2.8.9_01.

Version 2.8.9_01

  • Fixed improper use of indexes on collections of embedded objects (issues #2858 and #2859).

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 #2379issue #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.