Author: mduerig
Date: Wed Oct  2 08:41:38 2013
New Revision: 1528371

URL: http://svn.apache.org/r1528371
Log:
OAK-1055: Occasional test failure in ObservationTest.observation
Temporary work around using explicit synchronisation to ensure 
Hook.contentChanged sees a monotone increasing sequence of node states

Modified:
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeStoreBranch.java
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeStore.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeStoreBranch.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeStoreBranch.java?rev=1528371&r1=1528370&r2=1528371&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeStoreBranch.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeStoreBranch.java
 Wed Oct  2 08:41:38 2013
@@ -223,7 +223,6 @@ class KernelNodeStoreBranch extends Abst
 
         @Override
         NodeState merge(CommitHook hook, PostCommitHook committed) throws 
CommitFailedException {
-            committed.contentChanged(base, base);
             branchState = new Merged(base);
             return base;
         }

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeStore.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeStore.java?rev=1528371&r1=1528370&r2=1528371&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeStore.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeStore.java
 Wed Oct  2 08:41:38 2013
@@ -203,9 +203,12 @@ public class MemoryNodeStore implements 
             // TODO: rebase();
             checkNotMerged();
             NodeState merged = 
ModifiedNodeState.squeeze(checkNotNull(hook).processCommit(base, root));
-            store.root.set(merged);
-            root = null; // Mark as merged
-            committed.contentChanged(base, merged);
+            synchronized (this) {
+                // FIXME temporarily synchronized to work around the race 
described in OAK-1055
+                store.root.set(merged);
+                root = null; // Mark as merged
+                committed.contentChanged(base, merged);
+            }
             return merged;
         }
 


Reply via email to