ObjectDB Change Log

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.

Version 2.5.7

  • Added Refresh toolbar button and accelerator key in the Explorer.
  • Added support of retrieving database connection details.
  • Fixed unstable activation in Mac OS.
  • Fixed a bug in using FETCH JOIN in criteria queries.
  • Fixed a bug in cascading remove when orphan removal is set.
  • Fixed an IllegalAccessError exception when using abstract non public persistable types.
  • Fixed the result type of a sum query on a single value.

Version 2.5.6

  • Changed merge behavior (following this forum thread). 
  • Fixed a TomEE - ObjectDB client-server integration issue (issue #1407).
  • Fixed a ClassCastException on selecting an embedded ID field in queries.
  • Fixed an exception (NullPointerException) in update queries (since 2.5.5_12).
  • Fixed a NullPointerException in query compilation.
  • Fixed a memory leak (Negative snapshot user count) in UPDATE queries on uncommitted changes (issue #1407).
  • Fixed a memory leak in reflection mode (when using non enhanced classes).
  • Fixed a bug of unexpected change of primary key type in UPDATE queries.
  • Fixed some bugs in converting old ObjectDB 1.x database files to ObjectDB 2.x.
  • Fixed a bug in comparing String based enum to  NULL in queries.
  • Fixed an activation issue with hosteurope.de (issue #1413).
  • Fixed "objectdb activation" query to work properly in client-server mode.
  • Fixed enhancing class files that use INVOKE DYNAMIC.
  • Fixed an error message in accessing a field of an unknown type in queries (issue #1417).

Version 2.5.5

  • Added support of Java 8 (JDK 1.8), see issue #1369.
  • Added support for deleting archive log directory when the database is open (issue #1303).
  • Changed the response to starting a database server that is already running (avoiding further attempts).
  • Fixed a memory issue with using ObjectDB with JBoss.
  • Fixed query execution issues with using composite indexes.
  • Fixed a bug in using LIKE operator in some combinations of different wildcards.
  • Fixed a bug in handling dates (TemporalType.DATE) on some time zones.
  • Fixed log archiving to affect only "odb*.log" files.
  • Fixed an Explorer bug in displaying Integer embedded ID fields as Long.

Version 2.5.4

  • Added empty implementation of new JPA 2.1 methods.
  • Implemented new JPA 2.1 EntityManagerFactory methods: createEntityManager, unwrap.
  • Improved retrieving persistent string fields by using "".intern() for empty strings.
  • Fixed a bug in queries on composed embedded primary key (issue #1301).

Version 2.5.3

  • Added support for casting from boolean to int in queries.
  • Changed default value of <exclude-unlisted-classes />.
  • Fixed a critical Explorer bug that interferes with queries on enum fields.
  • Fixed a multithreading conflict (missing synchronization) in the JPA metamodel API.
  • Fixed implementation of casting (as) in criteria queries.

Version 2.5.2

  • Added automatic creation of the log directory if it does not exist.
  • Added support of old Spring Framework versions (with JPA 1.0).
  • Fixed "InternalException: InterruptedException" due to application interrupts in embedded mode.
  • Fixed a class loading conflict with Log4j.
  • Fixed very slow processing of a composite BETWEEN query.
  • Fixed NullPointerException when using AND TRUE in WHERE clause (issue #201).
  • Fixed an exception when accessing an object with a closed EntityManager.
  • Fixed a bug in viewing content of a TreeMap in the Explorer.

Version 2.5.1

  • Added support of editing enum values in the Explorer.
  • Added logging of type registration.
  • Added error message when using mapped by (inverse) collections and maps of invalid types.
  • Changed JOIN FETCH to act as LEFT JOIN in path expressions.
  • Updated the PDF manual.
  • Fixed a possible deadlock on Schema Update during Multithreading activity (issue #1139).
  • Fixed a bug in loading mapped (inverse) to-many relationship into an array field ([]) (issue #1131).
  • Fixed a bug in loading mapped (inverse) to-many relationship in embedded objects (issue #1131, #13).
  • Fixed a bug in automatic url switching in master-slave replication.
  • Fixed a bug in applying orphanRemoval=true by default on mapped by (inverse) relationships.
  • Fixed a bug in using IN expression in criteria queries.
  • Fixed processing an IN(:param) expression in JPQL queries.

Version 2.5.0

  • Added support of nested paths in JOIN FETCH.
  • Added support of persisting collections and maps of user defined types.
  • Added support of Google (Guava) collections.
  • Added support of inheritance of ID fields.
  • Added support of disabling detachment on rollback in JPA.
  • Added support of using entity instead of a PK in find (retrieval by example).
  • Added support of using list of literals in an query IN expression.
  • Added the ability to disable hollow objects.
  • Added TRACE level logging of query execution.
  • Added a new temporary system property ("objectdb.temp.quick-file") to accelerate db opening and closing.
  • Improved connecting and disconnecting performance when logging is disabled.
  • Improved closing database time when recovery is disabled.
  • Fixed hasSingleIdAttribute for partial primary key inheritance.
  • Fixed a bug in JOIN FETCH.
  • Fixed a bug in loading reference primary key field of an abstract type.
  • Fixed JDO sequence names to be fully qualified names (issue #1074).
  • Fixed accessing a package level JDO sequence using getSequence (issue #1074).
  • Fixed false Doctor warnings when updating the schema using external classes.
  • Fixed Doctor's index rebuilding to use NULL values for missing values of new fields.
  • Fixed a bug in UPDATE queries.
  • Fixed a bug in using the LIKE operator in queries with no wildcard characters.
  • Fixed support of embedded objects comparison in queries.
  • Fixed an ArrayIndexOutOfBoundsException in serializing entity objects.

Version 2.4.7

  • Fixed bugs in cascading merge and refresh.
  • Fixed an internal java.lang.ArrayStoreException bug (com.objectdb.o.InvToOneLoadRequest).
  • Fixed a regression bug (starting 2.4.4_13) in handling embeddable types.
  • Fixed a performance regression (since 2.4.4_01) in query result retrieval.
  • Added INFO level logging for indicating server start and stop.
  • Improved error message for creating a query with a closed EntityManager (issue #1032).

Version 2.4.6

  • Fixed a regression problem of version 2.4.5 in running in GlassFish.
  • Fixed a bug in retrieving primary key fields in queries (on index merging).
  • Fixed a bug in using a collection field index in queries.
  • Fixed query plan selection for queries with boolean indexed field.
  • Fixed a NullPointerException on Doctor run that removes an empty index.
  • Fixed Doctor false alert after changing field type.
  • Fixed an "Unexpected database state" exception when the Doctor builds a new index.
  • Fixed a bug in setting SSL client-server connection.
  • Added support for checking activation.
  • Added toString implementation to queries that returns the query string.

Version 2.4.5

  • Added support of lazy loading of mapped by (inverse) singular relationships (issue #768).
  • Added support for using ObjectDB with TomEE / OpenEJB.
  • Improved loading of eager mapped by (inverse) relationships (issue #769).
  • Improved performance of database file extending.
  • Fixed a bug in ignoring global cascade persist in an ORM file.
  • Fixed a NullPointerException during query execution (issue #978).
  • Fixed a class loading issue during automatic class scanning.
  • Fixed a Doctor deadlock.
  • Fixed multithreading problems when using new types simultaneously (issue #950).
  • Fixed a problem of EntityManager auto closing.
  • Fixed ArrayIndexOutOfBounds on using a no arg function in criteria queries (issue #946).
  • Fixed activation when there is no MAC address.
  • Fixed an update query error message on an attempt to update a collection (issue #943).
  • Fixed a NullPointerException during persistence field access.
  • Fixed a NullPointerException in query execution.

Version 2.4.4

  • Improved memory management when handling very large transactions (issue #935).
  • Improved the Doctor to handle additional situations.
  • Added support in retrieving metamodel without connection (feature request #896).
  • Added support of disabling logging.
  • Improved missing license notification feedback.
  • Fixed a bug in filtering mapped by objects by type.
  • Fixed a regression bug in using primary key fields in queries.
  • Fixed a regression bug of duplicating new objects on merge.
  • Fixed a Doctor bug that caused false alarms.

Version 2.4.3

  • Added support for using ObjectDB with JBoss AS 7.1.1.
  • Improved performance of merging managed entities.
  • Fixed a deadlock.
  • Changed license checks.

Version 2.4.2

  • Fixed a bug in handling mapped super class with no primary key (issue #864).
  • Fixed a bug in handling enum in the primary key (issue #852).
  • Fixed an initialization of inverse (mapped by) fields by JOIN FETCH (issue #854).
  • Fixed type checking of query parameters.
  • Changed merge implementation (removed temporary object clearing).
  • Fixed the Explorer to show null values in primitive fields (unset values in new fields) correctly.
  • Fixed a bug in clearing embedded objects during merge.
  • Added automatic cascading through embedded objects.
  • Fixed a bug in clearing persistent properties of primitive types.
  • Fixed a bug of returning managed hollow objects in query results.
  • Fixed an error message for invalid DELETE query (issue #825).

Version 2.4.1

Version 2.4.0

  • Added support of entity collections as query parameters.
  • Added support of running ObjectDB within Eclipse 3.7 wrapper jar.
  • Added support of sharing an identifier name for a variable and a parameter in the same query.
  • Added support for using ObjectDB with GlassFish 3.1.2.
  • Added handling missing classes in agent enhancement (by catching exceptions).
  • Added automatic restart for failed connections on unexpected network failure.
  • Improved temporary file management including avoiding permission collision.
  • Improved BIRT support (issue #659).
  • Improved evaluation of query plans that use composite indexes.
  • Improved processing of queries with a large number of variables (issue #607).
  • Improved toString of criteria queries to use aliases (issue #127).
  • Changed non loaded collections on detachment to null (rather thanempty collections).
  • Fixed a critical bug in handling a very large number of entity classes (issue #672).
  • Fixed LockModeType.OPTIMISTIC (READ) by handling it as OPTIMISTIC_FORCE_INCREMENT.
  • Fixed a bug in optimistic locking on find by using LockModeType.WRITE.
  • Fixed exception when a named query doesn't exist to IllegalArgumentException.
  • Fixed undeploying Glassfish 3.1.1 web application (by catching unexpected exception).
  • Fixed LEFT [OUTER] JOIN issues (including on mapped by collections).
  • Fixed object duplication on cascading merge (issue  #595).
  • Fixed an InternalException in query execution (issue #739).
  • Fixed a master server failure due to disconnecting a replicated slave server.
  • Fixed NOT NULL handling for basic (non relationship) references.
  • Fixed a bug in detecting orphan entities in reflection mode.
  • Fixed a bug in listing inherited persistent fields (in the Metamodel API and in the Explorer).
  • Fixed a bug in merging complex object graphs.
  • Fixed a bug in not using LIKE's ESCAPE when an index is used.
  • Fixed a bug in parsing time literals in queries.
  • Fixed recovery from failure when the recovery file is empty (issue #695).
  • Removed EntityManager conflict checks in NO DETACH mode.
  • Fixed a bug in online backup of databases larger than 2GB.
  • Fixed a bug in running queries between flush and commit.
  • Fixed a deadlock (issue #450).
  • Fixed another issue in implementing fake entity detachment (feature request #326).
  • Fixed a bug in compilation of path expressions in queries.
  • Fixed handling null values in JOIN and path expressions in queries.
  • Fixed a possibly very slow query execution when using entity parameters.
  • Fixed issues in navigation through detached objects.

Version 2.3.7

  • Fixed a critical issue that may cause database corruption (issue #630).
  • Initial attempt to enable navigation through lazy loading from detached objects (feature request #326).
  • Improved toString of criteria queries to use aliases (issue #127).
  • Fixed automatic variable naming in criteria queries (issue #640).
  • Fixed a bug in handling mapped super classes.
  • Fixed bugs in using casting in queries (including issue #642 and issue #646).
  • Fixed bugs in processing JOIN queries (including issue #632 and issue #634).
  • Fixed a bug in using JPQL operations (e.g. UPPER) in DISTINCT results.
  • Fixed an exception in handling user defined serializable classes in the Explorer (issue #647).

Version 2.3.6

  • Improved performance of collection and map size evaluation in queries.
  • Fixed a critical bug in page caching (issues #610, #621, #625).
  • Fixed a bug in optimization of non ASCII string indexes.
  • Fixed the new query HOUR function to return hours as 0 to 23 (using 24-hour clock).
  • Fixed a regression bug in the default fetch policy.
  • Fixed a new bug in retrieving byte[] (issue #624).
  • Fixed a bug in LEFT OUTER JOIN.
  • Fixed GROUP BY DATE(...) - merging AM and PM into the same date.

Version 2.3.5

  • Added support of DATE(...) and TIME(...) methods in queries.
  • Added new Explorer and Server exe (for Windows 7 and 64 bits).
  • Fixed handling a Calendar parameter value in criteria queries.
  • Fixed using type operator and literals in client server queries (issue #605).
  • Fixed eager fetch issues.
  • Fixed a bug in using type literals in queries.
  • Fixed a bug in passing a new entity object with no id as a query argument.
  • Fixed a bug in using TYPE in queries.
  • Fixed a NullPointerException in query compilation (issue #599).
  • Fixed an enhancement bug in reading special fields.
  • Fixed map type parameters display in the Explorer schema window.
  • Fixed merging a new entity object with application set primary key.

Version 2.3.4

  • Added OSGi support.
  • Added support of MEMBER OF for inverse (mapped by) collections.
  • Changed logging of incomplete recovery records from WARNING to TRACE  (issue #565).
  • Changed main configuration elements from required to optional.
  • Fixed the "Negative snapshot user count" bug (issue #556).
  • Fixed a page cache purge deadlock (issue #559).
  • Fixed handling ;drop in client-server connection url.
  • Fixed performance issue (fetch optimization) in range queries.
  • Fixed cached result size evaluation to include query arguments (issue #578).
  • Fixed a bug in using IS NULL in queries on new fields after schema change.
  • Fixed an Explorer bug in using an entity class with ID class.

Version 2.3.3

  • Improved compilation performance of OR queries with many elements.
  • Fixed eager fetch of maps and nested embedded objects.
  • Fixed a bug in removing a new flushed entity object before first commit (issue #562).
  • Fixed a NullPointerException in accessing inverse (mapped by) collection fields with cascading persist after updating the database and before commit (issue #544).
  • Fixed NullPointerException on accessing an inverse collection in an entity that has been garbage collected (issue #544).
  • Added support of @Column(unique="true") and equivalent ORM XML (issue #550).
  • Fixed @PrePersist on merge to be called after merging fields (issue #551).
  • Fixed eager fetch of collections and maps of simple values (issue #552).
  • Fixed a NullPointerException in enhancement of more than one class path root (issue #554).
  • Fixed a NullPointerException on detachment of some objects.
  • Fixed Linux "Name or service not known" error on server stop.

Version 2.3.2

  • Fixed a bug in "p.id IN :ids" queries.
  • Fixed a bug in handling NOT = queries (issue #536).
  • Fixed ClassCastException and NullPointerException in using a composite index in queries (issue #531).
  • Fixed Explorer bugs: editing embedded objects and using connection urls.
  • Fixed a NullPointerException on using a collection in a detached object
    (issue #527).
  • Fixed a bug of changing id type when an entity object is retrieved using find with a PK of a different type (e.g. Integer instead of Long) and then updated.
  • Fixed retrieval with pessimistic lock to bypass cache and to force refresh.

Version 2.3.1

  • Added support for using ObjectDB with JBoss AS 7.0.
  • Sample databases (world.odb, points.odb) included in ObjectDB distribution.
  • New default Explorer colors (apply with Tools > Options > Fonts > Reset All).
  • New menu for accessing local databases (in $objectdb/db) in the Explorer.
  • Improved UnsupportedOperationException error message.
  • Fixed a pessimistic lock timeout bug (issue #520).
  • Fixed a ClassCastException in using a composite index in queries (issue #521).
  • Fixed handling derived Id fields in composite PK embedded IDs.
  • Fixed default ObjectDB home path ($objectdb) in NetBeans RCP.
  • Fixed a Doctor and Replication regression (Type session exceeds timeout).
  • Removed Conflicting modifiers validation check and error message.

Version 2.3.0

  • Added the ability to edit databases in the Explorer (issue #2).
  • Added the ability to execute queries in the Explorer (issue #3).
  • Other small Explorer improvements.
  • Added support of IN operator in JPQL queries.
  • Added support of ";drop" database url parameter.
  • Adjusted the Enhancer to the new Java 7 class file format.
  • Improved error message for invalid mapped by (inverse) fields (issue #473).
  • Improved persisting byte[] by reducing required storage space.
  • Removed a shutdown hook that leads to memory leak (issue #453).
  • Completed missing documentation (e.g. UPDATE & DELETE queries).
  • Fixed memory leak issues.
  • Fixed server hang and deadlock issues.
  • Fixed several NullPointerException bugs.
  • Fixed the "Failed to generate dynamic type" exception.
  • Fixed a bug in query plans that use an inherited index.
  • Fixed bugs in queries on collections.
  • Fixed evaluation of $temp in the configuration file.

Version 2.2.9

Version 2.2.8

  • Fixed a critical bug in extensive removal operations of large objects.
  • Improved the performance of navigation through an inverse (mapped by) field if the owner field is indexed.
  • Fixed a LEFT OUTER JOIN bug.
  • Fixed a bug in parsing queries with parenthesis followed by NOT.
  • Fixed a bug in running online backup with no arguments.
  • Added option for running the Doctor without activating disabled indexes.
  • Fixed a Doctor bug in fixing old (< 2.0) database files.
  • Fixed a temporary file creation problem.
  • Fixed a bug in size evaluation of cached query single results.
  • Fixed internal NullPointerException-s (issues #365, #366, #368).
  • Fixed a pessimistic locking deadlock (issue #342).

Version 2.2.7

Version 2.2.6

  • Fixed the "Attempt to reuse an existing primary key value" after flush bug.
  • Fixed a bug in tracking changes to collections of new flushed entity objects.
  • Fixed generated value (ID allocation) bug with flush and in EJB containers.
  • Fixed a NullPointerException on getObjectsById.
  • Fixed a server freeze (no response) issue.
  • Fixed a NullPointerException in metamodel with embedded ID (issue #316).
  • Fixed an error message for invalid query parameter (issue @320).
  • Fixed pom.xml files in the Maven tutorials to use Java 1.5 / 1.6.

Version 2.2.5

  • Added support of navigation through collections (as a JPQL extension).
  • Added version display to the Server and Explorer About dialog boxes.
  • Fixed an UPDATE/DELETE query bug in client-server mode.
  • Fixed an ArrayIndexOutOfBoundsException in retrieval of large objects.
  • Fixed Explorer display of user defined serializable objects.
  • Fixed a bug in using NOT NULL in criteria queries.
  • Fixed a bug in using strings in criteria queries.
  • Fixed a bug in collection change tracking in a new entity object.
  • Fixed merging entity objects of another EntityManager.
  • Fixed a bug in concurrent EntityManagerFactory instantiation.
  • Fixed a bug in comparison of collections to values in queries.

Version 2.2.4

Version 2.2.3

Version 2.2.2

  • Changed log format to include date and time.
  • Changed class loader management.
  • Fixed handling multiple order expressions in inverse (mapped by) fields.
  • Fixed the behavior of CacheStoreMode setting in L2 shared cache.
  • Fixed TreeSet and TreeMap element comparison bugs.
  • Fixed an Explorer bug in opening tables for selected rows.
  • Fixed areplication configuration error.

Version 2.2.1

Version 2.2.0

  • Added full support of JPA 2 Criteria Queries API (issue #10)
  • Added full support of JPA 2 Metamodel API (issue #9)
  • Added non optional field validation (throwing an exception on null value).
  • Improved ObjectDB Doctor to handle additional issues.
  • Improved query execution planner.
  • Improved cleanup and reusing space after index deletion.
  • Changed default configuration (enabled recovery, disabled recording).
  • Fixed a critical database structure bug (issue #187).
  • Fixed a critical bug in schema evolution of modified ancestor classes.
  • Fixed a bug in handling indexes in a new ancestor class.
  • Fixed a query cache bug.
  • Fixed several bugs in query processing and running.
  • Fixed a query execution bug when index with null keys is used.
  • Fixed a bug in tracking field changes when a new value is the default value.
  • Fixed a bug in creation of unnecessary nonclosed files.
  • Fixed a ClassLoader conflict when using GlassFish.

Version 2.1.1

  • Fixed an Explorer bug in handling listeners and callbacks.
  • Fixed a bug in using user/password url arguments multiple times.
  • Fixed several bugs in query processing and running.

Version 2.1.0

Version 2.0.5

  • Fixed Java Agent / Java EE / Spring enhancement bug.
  • Fixed a bug in merging detached entity objects.
  • Fixed unexpected NullPointerException in client server mode.
  • Fixed an exception in AVG query on non numeric values (issue #107).
  • Fixed a bug in handling JOIN queries with primary key fields.

Version 2.0.4

  • Added support for JTA and Java EE Containers (issue #8).
  • Fixed a bug in indexing entity objects.
  • Fixed a bug in fixing broken references in ObjectDB Doctor.
  • Fixed a bug in modifying enhanced detached embedded objects.
  • Fixed a spring transformer (LoadTimeWeaver) problem.
  • Fixed a class loader issue when using GWT/Jetty.
  • Fixed a bug in using fields of embedded primary key in JPQL queries.

Version 2.0.3

  • Added support for serialization of inverse (mapped by) collection fields.
  • Fixed some activations issues.

Version 2.0.2

  • Fixed a bug in queries on embedded objects in C/S mode.
  • Fixed a bug in setting log directory path (missing URL decoding).
  • Fixed a bug in automatic byte code enhancement in Java EE server.
  • Fixed a bug in multi variable queries.

Version 2.0.1

  • Fixed a bug in lazy loading of instances of non enhanced classes.
  • Fixed a bug in using the Replayer with no updates to the database.
  • Fixed an activation bug.

Version 2.0.0

  • Improved processing of some sorts of queries.
  • Added support for using ObjectDB with JPA 1 jar in the classpath.
  • Changed server start avoiding new process creation.
  • Added logging for class loading and method finding problems.
  • Fixed a bug in the results of IS [NOT] NULL queries.
  • Fixed a bug in ObjectDB Doctor.
  • Fixed persistence.xml C/S connection property to "javax.persistence.jdbc.user".
  • Fixed a bug in the new log based (recording) recovery from failure mechanism.
  • Fixed a bug in finding an entity after a failed find followed by persist.
  • Fixed a memory leakage in eager load of large object graphs.
  • Fixed a synchronization bug in sequence value generation.
  • Fixed some issues in query execution.
  • Fixed ObjectDB Doctor to activate and rebuild also inactive (new) indexes.
  • Improved performance of database insert/update/delete operations.
  • Changed default configuration (for improved performance).
  • Added support for running a server with no tray icon (using a -console flag).
  • Changed EntityManager.find to return null when no object is found.
  • Fixed a bug in closing database files.
  • Fixed a bug in preserving order of @EmbeddedId fields.
  • Fixed a NullPointerException during cache cleanup.
  • Fixed a bug in database file converter (from ObjectDB 1.0 to 2.0).
  • Fixed a bug in handling duplicate / missing JDO metadata.
  • New error message when persisting a reference to a new (non managed) entity object.
  • Fixed a bug in lazy loading of instances of non enhanced classes.
  • Added Explorer support of ID / version / inverse (mapped by) fields.
  • Fixed Explorer bug in closing database files.
  • Fixed cascading through inverse (mapped by) fields.
  • Fixed some bugs in automatic schema evolution.
  • Fixed a Server/Explorer class loading bug (after schema change).
  • Fixed a bug in the ObjectDB Doctor Tool.