You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by re...@apache.org on 2018/06/26 12:29:03 UTC

svn commit: r1834424 - in /jackrabbit/trunk: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionImpl.java jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/GetPredecessorsTest.java

Author: reschke
Date: Tue Jun 26 12:29:03 2018
New Revision: 1834424

URL: http://svn.apache.org/viewvc?rev=1834424&view=rev
Log:
JCR-4324: NPE on Version.getLinearPredecessor() implementation

Modified:
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionImpl.java
    jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/GetPredecessorsTest.java

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionImpl.java?rev=1834424&r1=1834423&r2=1834424&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionImpl.java Tue Jun 26 12:29:03 2018
@@ -127,7 +127,7 @@ public class VersionImpl extends NodeImp
      */
     public javax.jcr.version.Version getLinearPredecessor() throws RepositoryException {
         InternalVersion pred = getInternalVersion().getLinearPredecessor();
-        return (Version) sessionContext.getSessionImpl().getNodeById(pred.getId());
+        return pred == null ? null : (Version) sessionContext.getSessionImpl().getNodeById(pred.getId());
     }
 
     /**

Modified: jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/GetPredecessorsTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/GetPredecessorsTest.java?rev=1834424&r1=1834423&r2=1834424&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/GetPredecessorsTest.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/GetPredecessorsTest.java Tue Jun 26 12:29:03 2018
@@ -41,31 +41,34 @@ public class GetPredecessorsTest extends
 
         assertTrue("Version should have at minimum one predecessor version.", version.getPredecessors().length > 0);
     }
-    
+
     /**
-     * Checks ontaining the linear predecessor.
+     * Checks obtaining the linear predecessor.
      * @since JCR 2.0
      */
     public void testGetLinearPredecessorSuccessor() throws RepositoryException {
 
         String path = versionableNode.getPath();
-        
+
         VersionManager vm = versionableNode.getSession().getWorkspace().getVersionManager();
-        
+
         // get the previous version
         Version pred = vm.getBaseVersion(path);
 
+        // shouldn't have a predecessor
+        assertNull(pred.getLinearPredecessor());
+
         // shouldn't have a successor yet
         assertNull(pred.getLinearSuccessor());
-        
+
         // check root version
         Version root = vm.getVersionHistory(path).getRootVersion();
         assertNull(root.getLinearSuccessor());
-        
+
         // create a new version
         vm.checkout(path);
         Version version = vm.checkin(path);
-        
+
         // refresh the predecessor
         pred = (Version)versionableNode.getSession().getNode(pred.getPath());