The Apache OpenJPA community is proud to announce the release of Apache OpenJPA 2.4.3. This distribution is based on the final JSR 317 Java Persistence API, Version 2.0 specification and passes the JPA 2.0 TCK, while remaining backwards compatible with the prior 1.2.x releases based on the Java Persistence API (JPA 1.0) part of Java Community Process JSR-220 (Enterprise JavaBeans 3.0).

Additional information on the OpenJPA project may be found at the project web site.

Changes in OpenJPA 2.4.3¶

Bug

[OPENJPA-2646] - Sporadic NullPointerException occurs under heavy load when QuerySQLCache is enabled.

[OPENJPA-2689] - Calling setFixedCHAR on newer Oracle JDBC drivers fails with an IllegalAccessException

[OPENJPA-2690] - Update OSGi Import-Package to support Oracle CLOB/BLOB

[OPENJPA-2691] - OracleDictionary should use non Deprecated method of empty_lob

[OPENJPA-2698] - Query cache incorrectly handles parameters for BETWEEN expressions

[OPENJPA-2725] - fix ConcurrentModificationException during unrefed dependents cleanup

New Feature

[OPENJPA-2598] - Support SQL server Offset Fetch syntax for pagination

Improvement

[OPENJPA-2581] - openjpa-maven-plugin: drop and create schema regardless of the current database state

Dependency upgrade

[OPENJPA-2730] - Update to XBean Asm 6 Shaded 4.8

Changes in OpenJPA 2.4.2¶

Bug

[OPENJPA-2245] - NotSerializableException when using a remote QueryCache and the Criteria API

[OPENJPA-2631] - ClassCastException occurs when an equals comparison query is executed on an entity with an @EmbeddedId that contains more than one field.

[OPENJPA-2632] - select new not working if result class is not in same classloader

[OPENJPA-2636] - Custom plugins (e.g. JDBCListener, DBDictionary) can cause Classloader leaks.

[OPENJPA-2640] - Cannot use custom DBDictionary with Maven plugin

[OPENJPA-2650] - When SchemaFactory and useSchemaName=false is set, a schema name is incorrectly used.

[OPENJPA-2651] - IDs of entities are incorrectly assigned when @SqlResultSetMapping is used with inheritance and a ManyToOne relationship.

[OPENJPA-2672] - ConfigurationImpl.loadGlobals() has java.util.ConcurrentModificationException vulnerability

[OPENJPA-2674] - JarFile is not closed

[OPENJPA-2675] - Missing check for null parameter in equals()

[OPENJPA-2676] - openjpa relies on default locale

[OPENJPA-2684] - Persistence entities not recognized in Wildfly 10 if in a JAR

Improvement

[OPENJPA-2660] - Resolve Maven warnings

Changes in OpenJPA 2.4.1¶

Bug

[OPENJPA-2341] - OpenJPA ignores custom field strategies globally defined in persistence.xml

[OPENJPA-2517] - Incorrect the time unit of query timeout value.

[OPENJPA-2539] - JPQL interpret wrongly for inner join table (without mapped relation)

[OPENJPA-2582] - openjpa bundle module leaks jest dependencies

[OPENJPA-2586] - Incorrect relationship data returned when QueryCache and FetchPlans are used.

[OPENJPA-2596] - schema-delta generation (sqlAction=refresh) drops columns if they have an alternative typeName

[OPENJPA-2597] - HsqlDictionary considers NUMERIC/DECIMAL as a fixedSizeTypeNameSet

[OPENJPA-2600] - finally remove NullSafeConcurrentHashMap and SizedConcurrentHashMap

[OPENJPA-2601] - 'hint' element in orm:xml is ignored

[OPENJPA-2603] - Merging an unmanaged entity multiple (3) times leads to an exception.

[OPENJPA-2605] - DelegatingConnection.unwrap() doesn't adhere to java.sql.Wrapper.unwrap() contract

[OPENJPA-2609] - Sporadic ClassCastException occurs under heavy load when QuerySQLCache is enabled.

[OPENJPA-2616] - Update Commons Collections to 3.2.2

[OPENJPA-2617] - blacklist org.codehaus.groovy.runtime.,org.apache.commons.collections.functors.,org.apache.xalan in our custom ObjectInputStreams

[OPENJPA-2626] - isEnhanced doesn't support java 8 bytecode

Improvement

[OPENJPA-2602] - OracleDictionary uses reflection way too often

[OPENJPA-2607] - Import range for javax.transaction is to small

[OPENJPA-2623] - Switch to Java5 mojo annotations

[OPENJPA-2627] - Create an option to disable column type checking errors during schema validation.

Test

[OPENJPA-2595] - upgrade test framework from junit-3 to junit 4

Changes in OpenJPA 2.4.0¶

Sub-task

[OPENJPA-2135] - Deprecate prepareForPooling

[OPENJPA-2489] - Delayed collection proxy tests failing with Java 8

[OPENJPA-2491] - AssertionFailedError with Java 8 and TestInExpressionParamaterBinding

[OPENJPA-2492] - TestConcurrentMap error with Java 8

Bug

[OPENJPA-1590] - Agent enhancer doesn't work with Tomcat

[OPENJPA-1988] - openjpa does not process persistence unit default <cascade-persist>

[OPENJPA-2022] - Reversemappingtooltask with oracle is failing like in OPENJPA-1940 previous bug

[OPENJPA-2094] - Metadata processing needs to support jar:file URLs that address Jar directories

[OPENJPA-2233] - Failed to invoke pcGetIDOwningClass method on embeddable entity with ID annotation

[OPENJPA-2286] - SELECT COUNT with date litteral,used more than once, provokes ArgumentException: Attempt to compare incompatible types class java.util.Date and class org.apache.openjpa.jdbc.sql.Raw

[OPENJPA-2287] - OpenJPA makes fields null

[OPENJPA-2381] - Update serp to 1.15.1

[OPENJPA-2441] - TestNullSafeConcurrentHashMap fails when running on Oracle Java 8

[OPENJPA-2442] - java.lang.VerifyError in TestProxyManager when loading a dynamically created custom proxy class on Oracle Java 8

[OPENJPA-2443] - InvalidStateException while merging a new Entity with a GeneratedValue id

[OPENJPA-2444] - ReverseMappingTool creates orm.xml files in the current working directory

[OPENJPA-2456] - Fresh checkout from svn won't compile tests due to OutOfMemoryError: Java heap space

[OPENJPA-2463] - Wrong logging level on message issued by the fix to OPENJPA-2233

[OPENJPA-2467] - No setter was found for method like tStart

[OPENJPA-2470] - DataCacheManagerImpl infinite loop for checking if classes are cachable

[OPENJPA-2472] - Concurrency issue in ClassMetaData.getPkAndNonPersistentManagedFmdIndexes()

[OPENJPA-2475] - A query with LEFT FETCH JOIN returns incorrect results.

[OPENJPA-2476] - OptimisticLockEx due to rounding of a Timestamp (either by OJ, or the DB)

[OPENJPA-2478] - Erroneous message from the enhancer when a Mapped Superclass contains an @Id.

[OPENJPA-2482] - java.sql.SQLException when processing a query result

[OPENJPA-2494] - A default Schema defined in a PU default (<persistence-unit-defaults>) in an orm.xml file is not being honored.

[OPENJPA-2502] - NPE in QueryKey.createKey using criteria with QueryCache enabled

[OPENJPA-2505] - OpenJPA PersistenceException: LongId cannot be cast to MyEntityClass… @OneToMany in combination with FetchType.EAGER

[OPENJPA-2506] - StoreCache interface doesn't work for many ID types

[OPENJPA-2507] - Weird EmptyStackException in CriteriaQueryImpl

[OPENJPA-2508] - LEFT JOIN FETCH not honored when data cache is enabled

[OPENJPA-2515] - Fix 2.3.x binary downloads

[OPENJPA-2525] - Use of JoinColumn(.. referencedColumnName= ..) targets to another joinColumn key exposed as an attribute will cause a ConstrainViolation exception on persist

[OPENJPA-2533] - Table name defined in XML mapping file is not used when executing a named query.

[OPENJPA-2534] - A boolean is not converted correct when using the hint 'UseLiteralInSQL'.

[OPENJPA-2536] - FetchGroup is not returning lazy fields.

[OPENJPA-2542] - Using custom openjpa.BrokerFactory not working in OSGi due to ClassLoader

[OPENJPA-2547] - When two threads attempt to get a Pessimistic Lock, one thread gets a 'false' lock.

[OPENJPA-2551] - Standard SQL boolean mapping impossible

[OPENJPA-2557] - FinderCache contains incorrectly cached query with a NULL for a Primary Key.

[OPENJPA-2571] - Criteria Builder query generates extra alias when using multiselect.

[OPENJPA-2573] - org.apache.openjpa.persistence.InvalidStateException: Attempt to set column "X to two different values... on trunk/2.4.0

[OPENJPA-2576] - fix broken JavaDoc

Improvement

[OPENJPA-2386] - Support for JAVA 8

[OPENJPA-2389] - For entity fields missing @Transient annotations, let us know the classes they are in.

[OPENJPA-2449] - refresh(PESSIMISTIC_WRITE) generates seperate SQL for the lock

[OPENJPA-2450] - Option to disable execution of ALTER SEQUENCE...INCREMENT BY statement for sequences.

[OPENJPA-2453] - Add support to retain milliseconds of 'un-rounded' Date field.

[OPENJPA-2466] - Modify ReverseMappingTool to write generated classes to a map

New Feature

[OPENJPA-2511] - provide a minimal shade

[OPENJPA-2558] - Implement a way to select the db representation of Boolean values

[OPENJPA-2570] - Allow an Informix user the option to disable the 'RETAINUPDATELOCKS' SQL.

[OPENJPA-2575] - wrong context class loader in org.apache.openjpa.enhance.PCClassFileTransformer#transform0

Task