You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Albert Lee (JIRA)" <ji...@apache.org> on 2012/09/05 20:34:07 UTC

[jira] [Commented] (OPENJPA-2257) Concurreny in org.apache.openjpa.persistence.EntityManagerImpl.getProperties leads to NullPointer and ConcurrentModificationException

    [ https://issues.apache.org/jira/browse/OPENJPA-2257?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13448979#comment-13448979 ] 

Albert Lee commented on OPENJPA-2257:
-------------------------------------

The problem is caused by the assumption that the configurationImpl obtained from emf is threadsafe since all the configuration values are frozen once the emf is created. However the broker getProperty() implementation defers the building up of the property key collection (_supportedKeys) in the configurationImpl when it is needed, but the _supportedKeys is not synchronized( thread safe), hence the observed exceptions.
                
> Concurreny in org.apache.openjpa.persistence.EntityManagerImpl.getProperties leads to NullPointer and ConcurrentModificationException
> -------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: OPENJPA-2257
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-2257
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: jpa
>    Affects Versions: 2.1.2
>         Environment: AIX 6.1 (64-bit)
> WebSphere Application Server V8.0 (32-bit) 
>            Reporter: Stephan Hagedorn
>              Labels: concurrency, concurrentmodificationexception, nullpointerexception
>         Attachments: OpenJPABugTest.zip
>
>
> A call of EntityManager.getProperties() can lead to NullPointer and ConcurrentModificationException. Issue occurs right after start up of the overlying JEE application if multiple EntityManager instance are created at same time.
> Please find the issued stack trace below:
> Caused by: java.lang.NullPointerException
>         at java.lang.String.compareTo(String.java:482)
>         at java.lang.String.compareTo(String.java:31)
>         at java.util.TreeMap.cmp(TreeMap.java:4514)
>         at java.util.TreeMap.putImpl(TreeMap.java:4556)
>         at java.util.TreeMap.put(TreeMap.java:4536)
>         at java.util.TreeSet.add(TreeSet.java:122)
>         at
> org.apache.openjpa.lib.conf.ConfigurationImpl.getPropertyKeys(ConfigurationImpl.java:708)
>         at
> org.apache.openjpa.kernel.BrokerImpl.getSupportedProperties(BrokerImpl.java:729)
>         at
> org.apache.openjpa.kernel.DelegatingBroker.getSupportedProperties(DelegatingBroker.java:223)
>         at
> org.apache.openjpa.persistence.EntityManagerImpl.getProperties(EntityManagerImpl.java:1624)
>         ... 33 more

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira