You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by mr...@apache.org on 2015/12/16 13:22:51 UTC

svn commit: r1720343 - in /jackrabbit/oak/trunk/oak-core/src: main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java

Author: mreutegg
Date: Wed Dec 16 12:22:51 2015
New Revision: 1720343

URL: http://svn.apache.org/viewvc?rev=1720343&view=rev
Log:
OAK-3798: NodeDocument.getNewestRevision() incorrect when there are previous documents

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java?rev=1720343&r1=1720342&r2=1720343&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java Wed Dec 16 12:22:51 2015
@@ -757,6 +757,15 @@ public final class NodeDocument extends
                     clusterIds.add(prevRev.getClusterId());
                 }
             }
+            if (!clusterIds.isEmpty()) {
+                // add clusterIds of local changes as well
+                for (Revision r : getLocalCommitRoot().keySet()) {
+                    clusterIds.add(r.getClusterId());
+                }
+                for (Revision r : getLocalRevisions().keySet()) {
+                    clusterIds.add(r.getClusterId());
+                }
+            }
         }
         // if we don't have clusterIds, we can use the local changes only
         boolean fullScan = true;
@@ -786,7 +795,8 @@ public final class NodeDocument extends
             }
             if (!fullScan) {
                 // check if we can stop going through changes
-                if (clusterIds.contains(r.getClusterId())) {
+                if (isRevisionNewer(context, lower, r)
+                        && newestRevs.containsKey(r.getClusterId())) {
                     if (isRevisionNewer(context, lower, r)) {
                         clusterIds.remove(r.getClusterId());
                         if (clusterIds.isEmpty()) {

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java?rev=1720343&r1=1720342&r2=1720343&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java Wed Dec 16 12:22:51 2015
@@ -349,7 +349,6 @@ public class DocumentNodeStoreTest {
     }
 
     // OAK-3798
-    @Ignore("OAK-3798")
     @Test
     public void getNewestRevision2() throws Exception {
         DocumentStore docStore = new MemoryDocumentStore();