Author: mreutegg
Date: Wed Mar 26 21:41:17 2014
New Revision: 1582077

URL: http://svn.apache.org/r1582077
Log:
OAK-1569: ClusterPermissionsTest occasionally fails on Windows

Modified:
    
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/ClusterPermissionsTest.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/ClusterPermissionsTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/ClusterPermissionsTest.java?rev=1582077&r1=1582076&r2=1582077&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/ClusterPermissionsTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/ClusterPermissionsTest.java
 Wed Mar 26 21:41:17 2014
@@ -59,10 +59,8 @@ import org.apache.jackrabbit.oak.spi.sec
 import org.apache.jackrabbit.oak.spi.security.user.UserConfiguration;
 import org.junit.After;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 
-@Ignore("OAK-1569") // FIXME OAK-1569: ClusterPermissionsTest occasionally 
fails on Windows
 public class ClusterPermissionsTest {
 
     private DocumentNodeStore ns1;
@@ -89,10 +87,10 @@ public class ClusterPermissionsTest {
         DocumentMK.Builder builder;
 
         builder = new DocumentMK.Builder();
-        builder.setDocumentStore(ds).setBlobStore(bs).setAsyncDelay(1);
+        builder.setDocumentStore(ds).setBlobStore(bs).setAsyncDelay(0);
         ns1 = builder.setClusterId(1).getNodeStore();
         builder = new DocumentMK.Builder();
-        builder.setDocumentStore(ds).setBlobStore(bs).setAsyncDelay(1);
+        builder.setDocumentStore(ds).setBlobStore(bs).setAsyncDelay(0);
         ns2 = builder.setClusterId(2).getNodeStore();
 
         Oak oak = new Oak(ns1)
@@ -109,6 +107,9 @@ public class ClusterPermissionsTest {
         userManager1 = 
securityProvider1.getConfiguration(UserConfiguration.class).getUserManager(root1,
 namePathMapper);
         aclMgr1 = 
securityProvider1.getConfiguration(AuthorizationConfiguration.class).getAccessControlManager(root1,
 namePathMapper);
 
+        // make sure initial content is visible to ns2
+        syncClusterNodes();
+
         oak = new Oak(ns2)
                 .with(new InitialContent())
                 .with(new ReferenceEditorProvider())
@@ -157,7 +158,7 @@ public class ClusterPermissionsTest {
     public void testCreateUser() throws Exception {
         userManager1.createUser("testUser", "testUser");
         root1.commit();
-        Thread.sleep(100);
+        syncClusterNodes();
         root2.refresh();
         assertNotNull("testUser must exist on 2nd cluster node", 
userManager2.getAuthorizable("testUser"));
     }
@@ -172,7 +173,7 @@ public class ClusterPermissionsTest {
         aclMgr1.setPolicy("/testNode", acl1);
         root1.commit();
 
-        Thread.sleep(100);
+        syncClusterNodes();
         root2.refresh();
         JackrabbitAccessControlList acl2 = 
AccessControlUtils.getAccessControlList(aclMgr2, "/testNode");
         AccessControlEntry[] aces = acl2.getAccessControlEntries();
@@ -199,7 +200,7 @@ public class ClusterPermissionsTest {
         aclMgr1.setPolicy("/testNode", acl1);
         root1.commit();
 
-        Thread.sleep(100);
+        syncClusterNodes();
         root2.refresh();
 
         // login with testUser1 and testUser2 (on cluster node 2)
@@ -218,7 +219,7 @@ public class ClusterPermissionsTest {
         aclMgr1.setPolicy("/testNode", acl1);
         root1.commit();
 
-        Thread.sleep(100);
+        syncClusterNodes();
         root2.refresh();
 
         // testUser1 can read /testNode
@@ -228,4 +229,9 @@ public class ClusterPermissionsTest {
         assertTrue(session2.getLatestRoot().getTree("/testNode").exists());
     }
 
+    private void syncClusterNodes() {
+        ns1.runBackgroundOperations();
+        ns2.runBackgroundOperations();
+    }
+
 }
\ No newline at end of file


Reply via email to