Title: OpenJPA 2.4.x
# OpenJPA 2.4.3
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](http://jcp.org/en/jsr/detail?id=317) 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](http://openjpa.apache.org).
# 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
# 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
# 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
- [OPENJPA-2200] - cleanup sources: remove unused imports, remove tabs, etc
- [OPENJPA-2487] - upgrade openjpa to asm5 to support java 8