[
https://issues.apache.org/jira/browse/OPENJPA-1630?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Rick Curtis resolved OPENJPA-1630.
----------------------------------
Resolution: Fixed
Committed revision 934478 to 2.0.X.
> NPE in MetaDataRepository when preloading is enabled under heavy stress.
> ------------------------------------------------------------------------
>
> Key: OPENJPA-1630
> URL: https://issues.apache.org/jira/browse/OPENJPA-1630
> Project: OpenJPA
> Issue Type: Bug
> Components: kernel
> Affects Versions: 1.2.2, 2.0.0-beta3, 2.0.0, 2.0.1, 2.1.0
> Reporter: Rick Curtis
> Assignee: Rick Curtis
> Fix For: 2.0.0, 2.1.0
>
> Attachments: OPENJPA-1630.patch
>
>
> A timing window exists in the MetaDataRepository where the following[1] NPE
> can be encountered. It is incorrect to assume that calling
> processRegisteredClasses at the end of preload would process all registered
> classes. As it turns out, that call does process all registered classes that
> this instance of the MDR cares about. The problem comes in when after the MDR
> is preloaded, Entities that belong to a different PU are registered with the
> PCRegistry and they are added to the _registered list.
> [1] Caused by: java.lang.NullPointerException
> at
> org.apache.openjpa.meta.MetaDataRepository.processRegisteredClasses(MetaDataRepository.java:1622)
> at
> org.apache.openjpa.meta.ClassMetaData.getPCSubclasses(ClassMetaData.java:364)
> at
> org.apache.openjpa.meta.ClassMetaData.getPCSubclassMetaDatas(ClassMetaData.java:381)
> at
> org.apache.openjpa.meta.ClassMetaData.getMappedPCSubclassMetaDatas(ClassMetaData.java:403)
> at
> org.apache.openjpa.jdbc.meta.ClassMapping.getMappedPCSubclassMappings(ClassMapping.java:628)
> at
> org.apache.openjpa.jdbc.meta.ClassMapping.getIndependentAssignableMappings(ClassMapping.java:667)
> at
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initializeState(JDBCStoreManager.java:380)
> at
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initialize(JDBCStoreManager.java:342)
> at
> com.ibm.ws.persistence.jdbc.kernel.WsJpaJDBCStoreManager.initialize(WsJpaJDBCStoreManager.java:147)
> at
> org.apache.openjpa.kernel.DelegatingStoreManager.initialize(DelegatingStoreManager.java:112)
> at
> org.apache.openjpa.kernel.ROPStoreManager.initialize(ROPStoreManager.java:57)
> at
> org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:1005)
> at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:963)
> ... 46 more
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira