[ https://issues.apache.org/jira/browse/OPENJPA-1630?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Donald Woods updated OPENJPA-1630: ---------------------------------- Fix Version/s: (was: 2.1.0) Don't need Fix Version of 2.1.0 since 2.0.0 hasn't been released yet.... > 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 > > 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