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/11/07 11:02:22 UTC

svn commit: r1845998 - in /jackrabbit/branches/2.10: ./ 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: Wed Nov  7 11:02:22 2018
New Revision: 1845998

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

Modified:
    jackrabbit/branches/2.10/   (props changed)
    jackrabbit/branches/2.10/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionImpl.java
    jackrabbit/branches/2.10/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/GetPredecessorsTest.java

Propchange: jackrabbit/branches/2.10/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Nov  7 11:02:22 2018
@@ -1,4 +1,4 @@
 /jackrabbit/branches/2.12:1776442,1776451,1776500,1776524,1835381
 /jackrabbit/branches/JCR-2272:1173165-1176545
 /jackrabbit/sandbox/JCR-2415-lucene-3.0:1060860-1064038
-/jackrabbit/trunk:1709811,1717599,1720093,1729382,1730696,1732436,1740814-1740815,1751279,1752165,1753226,1757322,1758600,1759607,1759782,1759865,1759933,1761679,1761909,1762422,1763558,1766398,1771078,1771741,1771939,1771999,1772049,1772343,1772444,1772457,1772530,1772544,1773579,1773591,1773745,1774443,1775123,1775132,1775315,1775384,1775414,1775419,1775437,1775444,1775463,1775472-1775473,1775481,1775485,1775496,1775509,1775514,1775613,1775617,1775621,1775624,1775629,1775631-1775632,1775634-1775635,1775637,1775657,1776384-1776385,1776407,1776410,1776413-1776414,1776416-1776417,1776421,1779166,1779460,1779632,1780208,1780335-1780336,1786325,1787043,1787381,1792100,1792105,1792113,1792193,1793315,1793323,1793327,1793332,1796980,1797209,1797917,1798586,1799429,1802977,1807234,1807244,1808752,1808754,1809149,1809329,1809624,1810108,1811667,1812543,1812634,1812994,1814831,1817097-1817098,1817100,1817201,1817213,1817377,1818586,1819269,1820133,1821597,1822643,1822863,1822947,1822950,182
 4756,1824763-1824764,1824771,1826178,1826230,1826647,1826940,1826964,1828213,1830540,1830753,1830814,1830878,1831854,1832058,1832090,1833374,1833891,1834308,1834315,1834401,1840288
+/jackrabbit/trunk:1709811,1717599,1720093,1729382,1730696,1732436,1740814-1740815,1751279,1752165,1753226,1757322,1758600,1759607,1759782,1759865,1759933,1761679,1761909,1762422,1763558,1766398,1771078,1771741,1771939,1771999,1772049,1772343,1772444,1772457,1772530,1772544,1773579,1773591,1773745,1774443,1775123,1775132,1775315,1775384,1775414,1775419,1775437,1775444,1775463,1775472-1775473,1775481,1775485,1775496,1775509,1775514,1775613,1775617,1775621,1775624,1775629,1775631-1775632,1775634-1775635,1775637,1775657,1776384-1776385,1776407,1776410,1776413-1776414,1776416-1776417,1776421,1779166,1779460,1779632,1780208,1780335-1780336,1786325,1787043,1787381,1792100,1792105,1792113,1792193,1793315,1793323,1793327,1793332,1796980,1797209,1797917,1798586,1799429,1802977,1807234,1807244,1808752,1808754,1809149,1809329,1809624,1810108,1811667,1812543,1812634,1812994,1814831,1817097-1817098,1817100,1817201,1817213,1817377,1818586,1819269,1820133,1821597,1822643,1822863,1822947,1822950,182
 4756,1824763-1824764,1824771,1826178,1826230,1826647,1826940,1826964,1828213,1830540,1830753,1830814,1830878,1831854,1832058,1832090,1833374,1833891,1834308,1834315,1834401,1834424,1840288

Modified: jackrabbit/branches/2.10/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.10/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionImpl.java?rev=1845998&r1=1845997&r2=1845998&view=diff
==============================================================================
--- jackrabbit/branches/2.10/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionImpl.java (original)
+++ jackrabbit/branches/2.10/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionImpl.java Wed Nov  7 11:02:22 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/branches/2.10/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/GetPredecessorsTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.10/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/GetPredecessorsTest.java?rev=1845998&r1=1845997&r2=1845998&view=diff
==============================================================================
--- jackrabbit/branches/2.10/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/GetPredecessorsTest.java (original)
+++ jackrabbit/branches/2.10/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/GetPredecessorsTest.java Wed Nov  7 11:02:22 2018
@@ -45,31 +45,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());