2699 words

ObjectDB version 2.4.5

Release date: 2012-12-13

You should start by following a tutorial or reading the manual.

For upgrading from version 1.0 please read the upgrade instructions.

Version 2.4.5

  • Added support of lazy loading of mapped by (inverse) singular relationships (issue #148).
  • Added support for using ObjectDB with TomEE / OpenEJB.
  • Improved loading of eager mapped by (inverse) relationships (issue #149).
  • 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 #178).
  • Fixed a class loading issue during automatic class scanning.
  • Fixed a Doctor deadlock.
  • Fixed multithreading problems when using new types simultaneously (issue #176).
  • Fixed a problem of EntityManager auto closing.
  • Fixed ArrayIndexOutOfBounds on using a no arg function in criteria queries (issue #174).
  • Fixed activation when there is no MAC address.
  • Fixed an update query error message on an attempt to update a collection (issue #173).
  • 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 #170).
  • Improved the Doctor to handle additional situations.
  • Added support in retrieving metamodel without connection (feature request #167).
  • 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 #162).
  • Fixed a bug in handling enum in the primary key (issue #159).
  • Fixed an initialization of inverse (mapped by) fields by JOIN FETCH (issue #161).
  • 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 #156).

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 #136).
  • Improved evaluation of query plans that use composite indexes.
  • Improved processing of queries with a large number of variables (issue #114).
  • Improved toString of criteria queries to use aliases (issue #127).
  • Changed non loaded collections on detachment to null (rather than empty collections).
  • Fixed a critical bug in handling a very large number of entity classes (issue #139).
  • 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 #110).
  • Fixed an InternalException in query execution (issue #144).
  • 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 #142).
  • 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 #62).
  • Fixed another issue in implementing fake entity detachment (feature request #48).
  • 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 #122).
  • Initial attempt to enable navigation through lazy loading from detached objects (feature request #48).
  • Fixed automatic variable naming in criteria queries (issue #128).
  • Fixed a bug in handling mapped super classes.
  • Fixed bugs in using casting in queries (including issue #129 and issue #133).
  • Fixed bugs in processing JOIN queries (including issue #123 and issue #125).
  • 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 #134).

Version 2.3.6

  • Improved performance of collection and map size evaluation in queries.
  • Fixed a critical bug in page caching (issues #116, #119, #121).
  • 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 #120).
  • 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 #112).
  • 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 #111).
  • 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 #88).
  • Changed main configuration elements from required to optional.
  • Fixed the "Negative snapshot user count" bug (issue #83).
  • Fixed a page cache purge deadlock (issue #85).
  • 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 #91).
  • 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 #86).
  • Fixed a NullPointerException in accessing inverse (mapped by) collection fields with cascading persist after updating the database and before commit (issue #78).
  • Fixed NullPointerException on accessing an inverse collection in an entity that has been garbage collected (issue #78).
  • Added support of @Column(unique="true") and equivalent ORM XML (issue #79).
  • Fixed @PrePersist on merge to be called after merging fields (issue #80).
  • Fixed eager fetch of collections and maps of simple values (issue #81).
  • Fixed a NullPointerException in enhancement of more than one class path root (issue #82).
  • 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 #77).
  • Fixed ClassCastException and NullPointerException in using a composite index in queries (issue #74).
  • Fixed Explorer bugs: editing embedded objects and using connection urls.
  • Fixed a NullPointerException on using a collection in a detached object
    (issue #72).
  • 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 #70).
  • Fixed a ClassCastException in using a composite index in queries (issue #71).
  • 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 #1).
  • Added the ability to execute queries in the Explorer (issue #2).
  • 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 #64).
  • Improved persisting byte[] by reducing required storage space.
  • Removed a shutdown hook that leads to memory leak (issue #63).
  • 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.
  • Added option for running the Doctor without activating disabled indexes.
  • Fixed a Doctor bug in fixing old (< 2.0) database files.
  • Fixed a pessimistic locking deadlock (issue #50).

Version 2.2.7

  • Fixed a conflict with IBM J9 JVM by disabling unsafe optimization.
  • Fixed a bug in applying nested eager fetch when enhancement is disabled.
  • Fixed the "Annotated methods must follow the JavaBeans naming convention" exception (issue #47).

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 #43).
  • Fixed an error message for invalid query parameter (issue @45).
  • 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

  • Fixed a bug in using persistent properties with incomplete enhancement.

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.

Version 2.2.1

  • Fixed a bug in using primary key fields in queries.
  • Fixed a bug in queries on deleted objects before commit / flush.

Version 2.2.0

  • Added full support of JPA 2 Criteria Queries API (issue #9)
  • Added full support of JPA 2 Metamodel API (issue #8)
  • 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 #36).
  • 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 #29).
  • Fixed a bug in handling JOIN queries with primary key fields.

Version 2.0.4

Version 2.0.3

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

See the ObjectDB 2.0 release notes for details about previous changes.