NPE when versioning operations are concurrent ---------------------------------------------
Key: JCR-3105 URL: https://issues.apache.org/jira/browse/JCR-3105 Project: Jackrabbit Content Repository Issue Type: Bug Components: jackrabbit-core Reporter: Julian Reschke InternalVersionManagerBase.getParentNode occasionally throws an NPE: protected static NodeStateEx getParentNode(NodeStateEx parent, String uuid, Name interNT) throws RepositoryException { NodeStateEx n = parent; for (int i = 0; i < 3; i++) { Name name = getName(uuid.substring(i * 2, i * 2 + 2)); if (n.hasNode(name)) { n = n.getNode(name, 1); assert n != null; } else if (interNT != null) { n.addNode(name, interNT, null, false); n.store(); n = n.getNode(name, 1); assert n != null; } else { return null; } } return n; } Apparently getNode occasionally returns null due to race conditions. Changing the code to what's below appears to fix it: protected static NodeStateEx getParentNode(NodeStateEx parent, String uuid, Name interNT) throws RepositoryException { NodeStateEx n = parent; for (int i = 0; i < 3; i++) { Name name = getName(uuid.substring(i * 2, i * 2 + 2)); NodeStateEx n2 = n.getNode(name, 1); if (n2 != null) { n = n2; } else if (interNT != null) { n2 = n.addNode(name, interNT, null, false); n.store(); n = n2; } else { return null; } } return n; } (but likely moves the race condition somewhere else) -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira