[ https://issues.apache.org/jira/browse/JCR-1272?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jukka Zitting updated JCR-1272: ------------------------------- Attachment: JCR-1272.jz.patch The attached patch (JCR-1272.jz.patch) makes all type-specific getters and setters use the generic Value methods. The new private getPropertyState() takes care of the sanity check and returns a safe PropertyState reference if the property is OK. There still are a number of direct unprotected references to the state variable in PropertyImpl, NodeImpl, and ItemImpl. I'm not sure how vulnerable those references are to this error condition. > Property.getValue() throws RepositoryException with internal error > ------------------------------------------------------------------ > > Key: JCR-1272 > URL: https://issues.apache.org/jira/browse/JCR-1272 > Project: Jackrabbit > Issue Type: Bug > Components: jackrabbit-core > Reporter: Marcel Reutegger > Priority: Minor > Attachments: JCR-1272.jz.patch, JCR-1272.patch > > > Running ConcurrentReadWriteTest (NUM_NODES=5, NUM_THREADS=3, > RUN_NUM_SECONDS=120) resulted in a RepositoryException calling > Property.getValue(): > javax.jcr.RepositoryException: Internal error while retrieving value of > b3fc1ea8-3364-4236-bcc7-dea0baf90640/{}test: null: null > Debugging shows that it is a NullPointerException: > java.lang.NullPointerException > at > org.apache.jackrabbit.core.PropertyImpl.getValue(PropertyImpl.java:481) > at > org.apache.jackrabbit.core.ConcurrentReadWriteTest$1$1.execute(ConcurrentReadWriteTest.java:68) > at > org.apache.jackrabbit.core.AbstractConcurrencyTest$Executor.run(AbstractConcurrencyTest.java:110) > at java.lang.Thread.run(Thread.java:619) > It's probably the state which has been discarded after the sanityCheck(). -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.