Author: mreutegg
Date: Tue Sep 10 08:00:30 2019
New Revision: 1866730

URL: http://svn.apache.org/viewvc?rev=1866730&view=rev
Log:
OAK-8591: Conflict exception on commit

Apply proposed changes and enable tests

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

Modified: 
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java?rev=1866730&r1=1866729&r2=1866730&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java
 Tue Sep 10 08:00:30 2019
@@ -885,19 +885,15 @@ public final class NodeDocument extends
         if (validRevisions.containsKey(rev)) {
             return true;
         }
-        if (Utils.isCommitted(commitValue) && !readRevision.isBranch()) {
-            // no need to load commit root document, we can simply
-            // tell by looking at the commit revision whether the
-            // revision is valid/visible
-            Revision commitRev = Utils.resolveCommitRevision(rev, commitValue);
-            return !readRevision.isRevisionNewer(commitRev);
+        // get the commit value if it is not yet available
+        if (commitValue == null) {
+            commitValue = context.getCommitValue(rev, this);
         }
-
-        NodeDocument doc = getCommitRoot(rev);
-        if (doc == null) {
+        if (commitValue == null) {
+            // this change is not committed, hence not valid/visible
             return false;
         }
-        if (doc.isVisible(context, rev, commitValue, readRevision)) {
+        if (isVisible(context, rev, commitValue, readRevision)) {
             validRevisions.put(rev, commitValue);
             return true;
         }
@@ -2060,22 +2056,15 @@ public final class NodeDocument extends
      * to check.
      *
      * @param revision  the revision to check.
-     * @param commitValue the commit value of the revision to check or
-     *                    <code>null</code> if unknown.
+     * @param commitValue the commit value of the revision to check.
      * @param readRevision the read revision.
      * @return <code>true</code> if the revision is visible, otherwise
      *         <code>false</code>.
      */
     private boolean isVisible(@NotNull RevisionContext context,
                               @NotNull Revision revision,
-                              @Nullable String commitValue,
+                              @NotNull String commitValue,
                               @NotNull RevisionVector readRevision) {
-        if (commitValue == null) {
-            commitValue = context.getCommitValue(revision, this);
-        }
-        if (commitValue == null) {
-            return false;
-        }
         if (Utils.isCommitted(commitValue)) {
             Branch b = context.getBranches().getBranch(readRevision);
             if (b == null) {

Modified: 
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/NodeDocumentTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/NodeDocumentTest.java?rev=1866730&r1=1866729&r2=1866730&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/NodeDocumentTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/NodeDocumentTest.java
 Tue Sep 10 08:00:30 2019
@@ -43,7 +43,6 @@ import org.apache.jackrabbit.oak.spi.com
 import org.apache.jackrabbit.oak.spi.commit.EmptyHook;
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
-import org.junit.Ignore;
 import org.junit.Test;
 
 import static com.google.common.collect.Maps.newLinkedHashMap;
@@ -479,13 +478,11 @@ public class NodeDocumentTest {
         ns.dispose();
     }
 
-    @Ignore
     @Test
     public void getNewestRevisionAfterGC() throws Exception {
         getNewestRevisionAfterGC(false);
     }
 
-    @Ignore
     @Test
     public void getNewestRevisionAfterGCWithBranchCommit() throws Exception {
         getNewestRevisionAfterGC(true);


Reply via email to