Fixes are available
8.5.5.1: WebSphere Application Server V8.5.5 Fix Pack 1
8.0.0.8: WebSphere Application Server V8.0 Fix Pack 8
8.5.5.2: WebSphere Application Server V8.5.5 Fix Pack 2
8.0.0.9: WebSphere Application Server V8.0 Fix Pack 9
8.5.5.3: WebSphere Application Server V8.5.5 Fix Pack 3
8.5.5.4: WebSphere Application Server V8.5.5 Fix Pack 4
8.0.0.10: WebSphere Application Server V8.0 Fix Pack 10
8.5.5.5: WebSphere Application Server V8.5.5 Fix Pack 5
8.5.5.6: WebSphere Application Server V8.5.5 Fix Pack 6
8.0.0.11: WebSphere Application Server V8.0 Fix Pack 11
8.5.5.7: WebSphere Application Server V8.5.5 Fix Pack 7
8.5.5.8: WebSphere Application Server V8.5.5 Fix Pack 8
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.14: WebSphere Application Server V8.5.5 Fix Pack 14
APAR status
Closed as program error.
Error description
Contexts and Dependency Injection (CDI) Extensions loaded from a shared library may have an inconsistent state when modified or accessed by package-private methods Proof can be seen in the logs that the private variable had contents and then later it can be seen that the contents are gone. technical details from the PMR that caused the creation of this APAR: ---------------------------------------------------------------- - All debug messages "Discovered xxx with qualifiers yyy" come from one and the same instance JpaRepositoryExtension@9dd26dcf - The problem does not seem to be the second instance JpaRepositoryExtension_$$_javassist_3@7c40c136 which is also created. - The following line is also written by instance JpaRepositoryExtension@9dd26dcf : [19.02.13 17:09:34:478 CET] 0000004d SystemOut O 17:09:34.478 [server.startup : 1] WARN o.s.d.j.r.cdi.JpaRepositoryExtension - did not find entityManagerBean. entityManagers Map:{} | qualifiers:[@javax.enterprise.inject.Any(), @javax.enterprise.inject.Default()], instance:org.springframework.data.jpa.repository.cdi. JpaRepositoryExtension@9dd26dcf The problem now is, that in this last statement, it shows that the private variable JpaRepositoryExtension.entityManagers is an empty Map ! But miliseconds before, the same private variable of the same instance was filled with data: [19.02.13 17:09:34:415 CET] 0000004d SystemOut O 17:09:34.415 [server.startup : 1] DEBUG o.s.d.j.r.cdi.JpaRepositoryExtension - Now entityManagers is:{[@ch.xxxxxxxxx.jap.core.logic.inject.DefaultImplementation() , @javax.enterprise.inject.Any()]=-2015852845,Name:null,WebBeans Type:PRODUCERMETHOD,API Types:[javax.persistence.EntityManager,java.lang.Object],Qualifi ers:[javax.enterprise.inject.Any,ch.xxxxxxxxx.jap.core.logic. inject.DefaultImplementation], [@javax.enterprise.inject.Default(), @javax.enterprise.inject.Any()]=1926396594,Name:null,WebBeans Type:PRODUCERMETHOD,API Types:[javax.persistence.EntityManager,java.lang.Object], Qualifiers:[javax.enterprise.inject.Any,javax.enterprise. inject.Default],[@javax.enterprise.inject.Any(), @ch.xxxxxxxxx.jap.core.logic.inject.InEnvironment(value=DEV)]=16 73432178 ,Name:null,WebBeans Type:PRODUCERMETHOD,API Types:[javax.persistence.EntityManager,java.lang.Object],Qualifi ers:[javax.enterprise.inject.Any,ch.xxxxxxxxx.jap.core.logic. inject.InEnvironment]} Instance:org.springframework.data.jpa.repository.cdi. JpaRepositoryExtension@9dd26dcf All is done in the same Thread on the same server (there is only 1). But somehow, between 17:09:34:415 and 17:09:34:478, the content of the private variable (JpaRepositoryExtension@9dd26dcf).entityManagers gets lost. But there is no method in class JpaRepositoryExtension that deletes anything from this map. It somehow looks as if the single instance JpaRepositoryExtension@9dd26dcf is internally represented in 2 different memory areas ? ----------------------------------------------------------------
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: IBM WebSphere Application Server users of * * Contexts and Dependency Injection (CDI). * **************************************************************** * PROBLEM DESCRIPTION: CDI proxy might not pass through * * calls to package private methods to * * the underlying instance. * **************************************************************** * RECOMMENDATION: * **************************************************************** When classes are located in an EAR/lib jar but are being injected into a web module, the proxy class will not override package private methods as it will be defined using the module classloader.
Problem conclusion
When the "com.ibm.ws.cdi.javassist.use.superclass" property is set to true in the META-INF/openwebbeans/openwebbeans.properties file the container will attempt to use the class's classloader to define the proxy as long as that classloader has the necessary visibility to the runtime classes. The fix for this APAR is currently targeted for inclusion in fix packs 8.0.0.8 and 8.5.5.1. 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
PM85765
Reported component name
WEBS APP SERV N
Reported component ID
5724H8800
Reported release
850
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2013-03-27
Closed date
2013-06-24
Last modified date
2014-10-14
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:
12 January 2022