[ https://issues.apache.org/jira/browse/JCR-1440?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Micah Whitacre updated JCR-1440: -------------------------------- Attachment: SimpleJackrabbitConflictTest.java I have been playing around with the test a bit and have found that if I don't wait for the clusters to synchronize after deleting the node "foo" that I will get the following stack trace when trying to check out the root node of he first session again. Not completely related to this bug but thought I'd post what I was finding. javax.jcr.InvalidItemStateException: cafebabe-cafe-babe-cafe-babecafebabe/{http://www.jcp.org/jcr/1.0}isCheckedOut has been modified externally at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1248) at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:896) at org.apache.jackrabbit.core.NodeImpl.checkout(NodeImpl.java:3001) at com.cerner.system.configuration.repository.jcr.SimpleJackrabbitConflictTest.testNullPointerExceptionThrown(SimpleJackrabbitConflictTest.java:99) > NPE Thrown when two Cluster Nodes are hitting the same underlying database. > --------------------------------------------------------------------------- > > Key: JCR-1440 > URL: https://issues.apache.org/jira/browse/JCR-1440 > Project: Jackrabbit > Issue Type: Bug > Affects Versions: 1.4, core 1.4.1 > Environment: Vista JDK 1.5.0_12. Using Derby and Derby Client > 10.1.2.1 > Reporter: Micah Whitacre > Priority: Critical > Attachments: repository1.xml, SimpleJackrabbitConflictTest.java, > SimpleJackRabbitTest.zip > > > I've created a test that creates two repositories with clustering enabled > that are backed by the same database. Using the following workflow causes a > NullPointerException to be thrown. > The workflow I'm using is: > The root node is versioned. > ClusterNode1 creates a versioned child node named "foo". > The test waits to make sure the syncDelay has passed so ClusterNode2 will > notice the newly created node. > ClusterNode2 retrieves the "foo" child node and removes it. > The test waits for the change ClusterNode1 to sync with that change. > ClusterNode1 tries to create another new node however a NullPointerException > is thrown when the it tries to checkout the rootNode. > java.lang.NullPointerException: null values not allowed > at > org.apache.commons.collections.map.AbstractReferenceMap.put(AbstractReferenceMap.java:251) > at > org.apache.jackrabbit.core.version.VersionManagerImpl.getItem(VersionManagerImpl.java:280) > at > org.apache.jackrabbit.core.version.XAVersionManager.getItem(XAVersionManager.java:334) > at > org.apache.jackrabbit.core.version.AbstractVersionManager.getVersion(AbstractVersionManager.java:87) > at > org.apache.jackrabbit.core.NodeImpl.getBaseVersion(NodeImpl.java:3198) > at org.apache.jackrabbit.core.NodeImpl.checkout(NodeImpl.java:2991) > at > com.cerner.system.configuration.repository.jcr.SimpleJackrabbitConflictTest.testNullPointerExceptionThrown(SimpleJackrabbitConflictTest.java:96) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.