Fixes are available
8.0.0.12: WebSphere Application Server V8.0 Fix Pack 12
8.5.5.9: WebSphere Application Server V8.5.5 Fix Pack 9
8.5.5.10: WebSphere Application Server V8.5.5 Fix Pack 10
8.5.5.11: WebSphere Application Server V8.5.5 Fix Pack 11
8.0.0.13: WebSphere Application Server V8.0 Fix Pack 13
8.5.5.12: WebSphere Application Server V8.5.5 Fix Pack 12
8.0.0.14: WebSphere Application Server V8.0 Fix Pack 14
8.5.5.13: WebSphere Application Server V8.5.5 Fix Pack 13
8.0.0.15: WebSphere Application Server V8.0 Fix Pack 15
8.5.5.14: WebSphere Application Server V8.5.5 Fix Pack 14
8.5.5.15: WebSphere Application Server V8.5.5 Fix Pack 15
8.5.5.17: WebSphere Application Server V8.5.5 Fix Pack 17
8.5.5.20: WebSphere Application Server V8.5.5.20
8.5.5.18: WebSphere Application Server V8.5.5 Fix Pack 18
8.5.5.19: WebSphere Application Server V8.5.5 Fix Pack 19
8.5.5.16: WebSphere Application Server V8.5.5 Fix Pack 16
8.5.5.21: WebSphere Application Server V8.5.5.21
APAR status
Closed as program error.
Error description
When query cache is enabled, under high load, the caching process did not handle correctly and intermittently threw ClassCastException. Example: java.lang.ClassCastException: java.lang.String incompatible with java.lang.Integer at org.apache.openjpa.jdbc.kernel. PreparedSQLStoreQuery$PreparedSQLExecutor.toParameterArray (PreparedSQLStoreQuery.java:160) at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java: 857)
Local fix
N/A
Problem summary
**************************************************************** * USERS AFFECTED: All users of IBM WebSphere Application * * Server V8.0.0, V8.5.0, and V8.5.5 * * who make use of OpenJPA's QuerySQLCache. * **************************************************************** * PROBLEM DESCRIPTION: Sporadic ClassCastException occurs * * under heavy load when OpenJPA's * * QuerySQLCache is enabled. * **************************************************************** * RECOMMENDATION: * **************************************************************** When OpenJPA's QuerySQLCache is enabled, there exists the potential for the following ClassCastException to occur sporadically: java.lang.ClassCastException: java.lang.String incompatible with java.lang.Integer at org.apache.openjpa.jdbc.kernel.PreparedSQLStoreQuery$PreparedSQL Executor.toParameterArray(PreparedSQLStoreQuery.java:160) at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:857) ... 23 more This exception can occur when two or more threads attempt to run the same query at the same time, using query parameters. For example, take this query: q = em.createQuery("select o from MyEntity o where upper(o.comment) like :mrn"); q.setParameter("mrn", "test"); q.getResultList(); When this query is run, an entry is created for this query in OpenJPA's QuerySQLCache. If many threads run this same exact query at the same exact time, there is the potential for two or more threads to attempt to initialize the cached query. In most cases the cached query is only initialized once by one thread. There exists a race condition where by the cached query could be initialized more than once. This sets into motion a scenario which can cause a ClassCastException when the cached query is run. The window or time in which this can occur is very narrow and complicated (many things have to aline perfectly). The details are beyond the scope of this APAR. However, suffice it to say that in the absence of this fix, the issue can be worked around by disabling the OpenJPA QuerySQLCache, as described in the OpenJPA documentation.
Problem conclusion
With this fix, code has been added to OpenJPA to ensure that a query is initialized and cached by only one thread. In other words, code has been added to properly synchronize the code path which caused the ClassCastException. The fix for this APAR is currently targeted for inclusion in Service Levels (Fix Packs) 8.0.0.12 and 8.5.5.9 of WebSphere Application Server versions 8.0.0 and 8.5.5. Please refer to the recommended updates page for delivery information: http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980
Temporary fix
Comments
APAR Information
APAR number
PI50694
Reported component name
WEBS APP SERV N
Reported component ID
5724H8800
Reported release
800
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2015-10-15
Closed date
2015-10-27
Last modified date
2015-10-30
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
WEBS APP SERV N
Fixed component ID
5724H8800
Applicable component levels
R800 PSY
UP
R850 PSY
UP
Document Information
Modified date:
28 April 2022