Fixes are available
8.0.0.3: WebSphere Application Server V8.0 Fix Pack 3
7.0.0.23: WebSphere Application Server V7.0 Fix Pack 23
8.0.0.4: WebSphere Application Server V8.0 Fix Pack 4
7.0.0.25: WebSphere Application Server V7.0 Fix Pack 25
8.0.0.5: WebSphere Application Server V8.0 Fix Pack 5
7.0.0.27: WebSphere Application Server V7.0 Fix Pack 27
8.0.0.6: WebSphere Application Server V8.0 Fix Pack 6
7.0.0.29: WebSphere Application Server V7.0 Fix Pack 29
8.0.0.7: WebSphere Application Server V8.0 Fix Pack 7
8.0.0.8: WebSphere Application Server V8.0 Fix Pack 8
7.0.0.31: WebSphere Application Server V7.0 Fix Pack 31
7.0.0.27: Java SDK 1.6 SR13 FP2 Cumulative Fix for WebSphere Application Server
7.0.0.33: WebSphere Application Server V7.0 Fix Pack 33
8.0.0.9: WebSphere Application Server V8.0 Fix Pack 9
7.0.0.35: WebSphere Application Server V7.0 Fix Pack 35
8.0.0.10: WebSphere Application Server V8.0 Fix Pack 10
7.0.0.37: WebSphere Application Server V7.0 Fix Pack 37
8.0.0.11: WebSphere Application Server V8.0 Fix Pack 11
7.0.0.39: WebSphere Application Server V7.0 Fix Pack 39
8.0.0.12: WebSphere Application Server V8.0 Fix Pack 12
7.0.0.41: WebSphere Application Server V7.0 Fix Pack 41
8.0.0.13: WebSphere Application Server V8.0 Fix Pack 13
7.0.0.43: WebSphere Application Server V7.0 Fix Pack 43
8.0.0.14: WebSphere Application Server V8.0 Fix Pack 14
7.0.0.45: WebSphere Application Server V7.0 Fix Pack 45
8.0.0.15: WebSphere Application Server V8.0 Fix Pack 15
7.0.0.23: Java SDK 1.6 SR10 FP1 Cumulative Fix for WebSphere
7.0.0.25: Java SDK 1.6 SR11 Cumulative Fix for WebSphere Application Server
7.0.0.27: Java SDK 1.6 SR12 Cumulative Fix for WebSphere Application Server
7.0.0.29: Java SDK 1.6 SR13 FP2 Cumulative Fix for WebSphere Application Server
7.0.0.45: Java SDK 1.6 SR16 FP60 Cumulative Fix for WebSphere Application Server
7.0.0.31: Java SDK 1.6 SR15 Cumulative Fix for WebSphere Application Server
7.0.0.35: Java SDK 1.6 SR16 FP1 Cumulative Fix for WebSphere Application Server
7.0.0.37: Java SDK 1.6 SR16 FP3 Cumulative Fix for WebSphere Application Server
7.0.0.39: Java SDK 1.6 SR16 FP7 Cumulative Fix for WebSphere Application Server
7.0.0.41: Java SDK 1.6 SR16 FP20 Cumulative Fix for WebSphere Application Server
7.0.0.43: Java SDK 1.6 SR16 FP41 Cumulative Fix for WebSphere Application Server
APAR status
Closed as program error.
Error description
There exists the potential for deadlock with the ORM XML processing function. In an environment with multiple threads (such as an application server), operations (such as creating a new EntityManagerFactory or transformation Classloader activity) can lead to a point where a Xerces SAX Parser (acquired by XMLFactory) is constituted and executed. Xerces calls Thread.currentThread().getContextClassloader() during its execution to construct the SAXParser (via ObjectFactory.createObject()). This means that within the call to Xerces, a ClassLoader lock will be attempted on the Thread's ContextClassLoader. If there is already a lock with a ClassLoader higher in the heirarchy, and another thread with a lock on the same ContextClassLoader that is waiting to acquire a lock on a higher level ClassLoader, then a deadlock will occur.
Local fix
N/A
Problem summary
**************************************************************** * USERS AFFECTED: All users of IBM WebSphere Application * * Server V7.0 and V8.0 * **************************************************************** * PROBLEM DESCRIPTION: The potential for deadlock exists with * * the ORM XML processing * * function. * **************************************************************** * RECOMMENDATION: * **************************************************************** There exists the potential for deadlock with the ORM XML processing function. In an environment with multiple threads (such as an application server), operations (such as creating a new EntityManagerFactory or transformation Classloader activity) can lead to a point where a Xerces SAX Parser (acquired by XMLFactory) is constituted and run. Xerces calls Thread.currentThread().getContextClassloader() during its execution to construct the SAXParser (via ObjectFactory.createObject()). This means that within the call to Xerces,a ClassLoader lock will be attempted on the Thread's ContextClassLoader. If there is already a lock with a ClassLoader higher in the heirarchy, and another thread with a lock on the same ContextClassLoader that is waiting to acquire a lock on a higher level ClassLoader, then a deadlock will occur. The deadlock occurs when a thread locks the compound classloader (which can occur when the transformation classloader is invoked) and xerces is called upon by the OpenJPA PCEnhancer to parse an ORM XML. Xerces will use the ClassLoader specified by the Thread's ContextClassLoader to find SAX/DOM Parser implementations, which means its ClassLoader activity will attempt to lock the Thread's ContextClassLoader. In this situation, the ContextClassLoader is the classloader at the bottom of the heirarchy, such as the web container's application classloader. The deadlock can occur if another thread performs a ClassLoader operation that locks the web container application classloader and makes a further attempt to lock a higher classloder (ie, the compound classloader). This results in a deadlock between the two threads.
Problem conclusion
The solution is to change the Thread ContextClassLoader to the classloader used to load the OpenJPA implementation classes which guarantees that Xerces will use a ClassLoader that is higher up the ClassLoader heirarchy. An interim Fix is available to fix this problem. In addition to installing the interim Fix, the following property must be set to enable the ContextClassLoader override in either the persistence unit definition within persistence.xml or as a server JVM property: ========================================= Name: openjpa.Compatibility Value: OverrideContextClassloader=true ========================================= The fix for this APAR is currently targeted for inclusion in fix pack 7.0.0.23 and 8.0.0.3. 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
PM38854
Reported component name
WEBSPHERE APP S
Reported component ID
5724J0800
Reported release
700
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2011-05-10
Closed date
2012-02-16
Last modified date
2012-02-16
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
WEBSPHERE APP S
Fixed component ID
5724J0800
Applicable component levels
R700 PSY
UP
R800 PSY
UP
Document Information
Modified date:
27 October 2021