Trying to make tests more reliable

Project: http://git-wip-us.apache.org/repos/asf/curator/repo
Commit: http://git-wip-us.apache.org/repos/asf/curator/commit/208317ab
Tree: http://git-wip-us.apache.org/repos/asf/curator/tree/208317ab
Diff: http://git-wip-us.apache.org/repos/asf/curator/diff/208317ab

Branch: refs/heads/CURATOR-3.0
Commit: 208317ab0110663745a5e8e76fd9a8bca634082e
Parents: 34700a0
Author: randgalt <randg...@apache.org>
Authored: Sat Oct 10 16:49:33 2015 -0500
Committer: randgalt <randg...@apache.org>
Committed: Sat Oct 10 16:49:33 2015 -0500

----------------------------------------------------------------------
 .../recipes/nodes/PersistentEphemeralNode.java  |   2 +-
 .../nodes/TestPersistentEphemeralNode.java      | 125 +++++++++----------
 .../apache/curator/test/BaseClassForTests.java  |   5 +-
 .../curator/test/TestingZooKeeperMain.java      |   2 +-
 4 files changed, 67 insertions(+), 67 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/curator/blob/208317ab/curator-recipes/src/main/java/org/apache/curator/framework/recipes/nodes/PersistentEphemeralNode.java
----------------------------------------------------------------------
diff --git 
a/curator-recipes/src/main/java/org/apache/curator/framework/recipes/nodes/PersistentEphemeralNode.java
 
b/curator-recipes/src/main/java/org/apache/curator/framework/recipes/nodes/PersistentEphemeralNode.java
index f7a4ff4..1606c36 100644
--- 
a/curator-recipes/src/main/java/org/apache/curator/framework/recipes/nodes/PersistentEphemeralNode.java
+++ 
b/curator-recipes/src/main/java/org/apache/curator/framework/recipes/nodes/PersistentEphemeralNode.java
@@ -398,7 +398,7 @@ public class PersistentEphemeralNode implements Closeable
             catch ( InterruptedException e )
             {
                 Thread.currentThread().interrupt();
-                e.printStackTrace();
+                return;
             }
         }
 

http://git-wip-us.apache.org/repos/asf/curator/blob/208317ab/curator-recipes/src/test/java/org/apache/curator/framework/recipes/nodes/TestPersistentEphemeralNode.java
----------------------------------------------------------------------
diff --git 
a/curator-recipes/src/test/java/org/apache/curator/framework/recipes/nodes/TestPersistentEphemeralNode.java
 
b/curator-recipes/src/test/java/org/apache/curator/framework/recipes/nodes/TestPersistentEphemeralNode.java
index 0ee6dec..fe2dd93 100644
--- 
a/curator-recipes/src/test/java/org/apache/curator/framework/recipes/nodes/TestPersistentEphemeralNode.java
+++ 
b/curator-recipes/src/test/java/org/apache/curator/framework/recipes/nodes/TestPersistentEphemeralNode.java
@@ -72,7 +72,7 @@ public class TestPersistentEphemeralNode extends 
BaseClassForTests
         {
             for ( PersistentEphemeralNode node : createdNodes )
             {
-                node.close();
+                CloseableUtils.closeQuietly(node);
             }
 
             for ( CuratorFramework curator : curatorInstances )
@@ -95,37 +95,39 @@ public class TestPersistentEphemeralNode extends 
BaseClassForTests
         try
         {
             client.start();
-            PersistentEphemeralNode node = new PersistentEphemeralNode(client, 
PersistentEphemeralNode.Mode.EPHEMERAL, "/abc/node", "hello".getBytes());
-            node.start();
-
-            final CountDownLatch connectedLatch = new CountDownLatch(1);
-            final CountDownLatch reconnectedLatch = new CountDownLatch(1);
-            ConnectionStateListener listener = new ConnectionStateListener()
+            try ( PersistentEphemeralNode node = new 
PersistentEphemeralNode(client, PersistentEphemeralNode.Mode.EPHEMERAL, 
"/abc/node", "hello".getBytes()) )
             {
-                @Override
-                public void stateChanged(CuratorFramework client, 
ConnectionState newState)
+                node.start();
+
+                final CountDownLatch connectedLatch = new CountDownLatch(1);
+                final CountDownLatch reconnectedLatch = new CountDownLatch(1);
+                ConnectionStateListener listener = new 
ConnectionStateListener()
                 {
-                    if ( newState == ConnectionState.CONNECTED )
-                    {
-                        connectedLatch.countDown();
-                    }
-                    if ( newState == ConnectionState.RECONNECTED )
+                    @Override
+                    public void stateChanged(CuratorFramework client, 
ConnectionState newState)
                     {
-                        reconnectedLatch.countDown();
+                        if ( newState == ConnectionState.CONNECTED )
+                        {
+                            connectedLatch.countDown();
+                        }
+                        if ( newState == ConnectionState.RECONNECTED )
+                        {
+                            reconnectedLatch.countDown();
+                        }
                     }
-                }
-            };
-            client.getConnectionStateListenable().addListener(listener);
-            timing.sleepABit();
-            server.restart();
-            Assert.assertTrue(timing.awaitLatch(connectedLatch));
-            timing.sleepABit();
-            
Assert.assertTrue(node.waitForInitialCreate(timing.forWaiting().milliseconds(), 
TimeUnit.MILLISECONDS));
-            server.stop();
-            timing.sleepABit();
-            server.restart();
-            timing.sleepABit();
-            Assert.assertTrue(timing.awaitLatch(reconnectedLatch));
+                };
+                client.getConnectionStateListenable().addListener(listener);
+                timing.sleepABit();
+                server.restart();
+                Assert.assertTrue(timing.awaitLatch(connectedLatch));
+                timing.sleepABit();
+                
Assert.assertTrue(node.waitForInitialCreate(timing.forWaiting().milliseconds(), 
TimeUnit.MILLISECONDS));
+                server.stop();
+                timing.sleepABit();
+                server.restart();
+                timing.sleepABit();
+                Assert.assertTrue(timing.awaitLatch(reconnectedLatch));
+            }
         }
         finally
         {
@@ -252,10 +254,7 @@ public class TestPersistentEphemeralNode extends 
BaseClassForTests
         }
         finally
         {
-            if ( node != null )
-            {
-                node.close();
-            }
+            CloseableUtils.closeQuietly(node);
             TestCleanState.closeAndTestClean(client);
         }
     }
@@ -276,7 +275,7 @@ public class TestPersistentEphemeralNode extends 
BaseClassForTests
         }
         finally
         {
-            node.close();  // After closing the path is set to null...
+            CloseableUtils.closeQuietly(node);
         }
 
         assertNodeDoesNotExist(curator, path);
@@ -306,9 +305,9 @@ public class TestPersistentEphemeralNode extends 
BaseClassForTests
         CuratorFramework observer = newCurator();
 
         PersistentEphemeralNode node = new PersistentEphemeralNode(curator, 
PersistentEphemeralNode.Mode.EPHEMERAL, PATH, new byte[0]);
-        node.start();
         try
         {
+            node.start();
             node.waitForInitialCreate(timing.forWaiting().seconds(), 
TimeUnit.SECONDS);
             assertNodeExists(observer, node.getActualPath());
 
@@ -325,7 +324,7 @@ public class TestPersistentEphemeralNode extends 
BaseClassForTests
         }
         finally
         {
-            node.close();
+            CloseableUtils.closeQuietly(node);
         }
     }
 
@@ -336,9 +335,9 @@ public class TestPersistentEphemeralNode extends 
BaseClassForTests
         CuratorFramework observer = newCurator();
 
         PersistentEphemeralNode node = new PersistentEphemeralNode(curator, 
PersistentEphemeralNode.Mode.EPHEMERAL, PATH, new byte[0]);
-        node.start();
         try
         {
+            node.start();
             node.waitForInitialCreate(5, TimeUnit.SECONDS);
             assertNodeExists(observer, node.getActualPath());
 
@@ -359,7 +358,7 @@ public class TestPersistentEphemeralNode extends 
BaseClassForTests
         }
         finally
         {
-            node.close();
+            CloseableUtils.closeQuietly(node);
         }
     }
 
@@ -370,9 +369,9 @@ public class TestPersistentEphemeralNode extends 
BaseClassForTests
         CuratorFramework observer = newCurator();
 
         PersistentEphemeralNode node = new PersistentEphemeralNode(curator, 
PersistentEphemeralNode.Mode.EPHEMERAL, PATH, new byte[0]);
-        node.start();
         try
         {
+            node.start();
             node.waitForInitialCreate(timing.forWaiting().seconds(), 
TimeUnit.SECONDS);
             String path = node.getActualPath();
             assertNodeExists(observer, path);
@@ -399,7 +398,7 @@ public class TestPersistentEphemeralNode extends 
BaseClassForTests
         }
         finally
         {
-            node.close();
+            CloseableUtils.closeQuietly(node);
         }
     }
 
@@ -409,9 +408,9 @@ public class TestPersistentEphemeralNode extends 
BaseClassForTests
         CuratorFramework curator = newCurator();
 
         PersistentEphemeralNode node = new PersistentEphemeralNode(curator, 
PersistentEphemeralNode.Mode.EPHEMERAL, PATH, new byte[0]);
-        node.start();
         try
         {
+            node.start();
             node.waitForInitialCreate(timing.forWaiting().seconds(), 
TimeUnit.SECONDS);
             String originalNode = node.getActualPath();
             assertNodeExists(curator, originalNode);
@@ -427,7 +426,7 @@ public class TestPersistentEphemeralNode extends 
BaseClassForTests
         }
         finally
         {
-            node.close();
+            CloseableUtils.closeQuietly(node);
         }
     }
 
@@ -437,9 +436,9 @@ public class TestPersistentEphemeralNode extends 
BaseClassForTests
         CuratorFramework curator = newCurator();
 
         PersistentEphemeralNode node1 = new PersistentEphemeralNode(curator, 
PersistentEphemeralNode.Mode.EPHEMERAL_SEQUENTIAL, PATH, new byte[0]);
-        node1.start();
         try
         {
+            node1.start();
             node1.waitForInitialCreate(timing.forWaiting().seconds(), 
TimeUnit.SECONDS);
             String path1 = node1.getActualPath();
 
@@ -470,15 +469,15 @@ public class TestPersistentEphemeralNode extends 
BaseClassForTests
         byte[] data = "Hello World".getBytes();
 
         PersistentEphemeralNode node = new PersistentEphemeralNode(curator, 
PersistentEphemeralNode.Mode.EPHEMERAL, PATH, data);
-        node.start();
         try
         {
+            node.start();
             node.waitForInitialCreate(timing.forWaiting().seconds(), 
TimeUnit.SECONDS);
             
assertTrue(Arrays.equals(curator.getData().forPath(node.getActualPath()), 
data));
         }
         finally
         {
-            node.close();
+            CloseableUtils.closeQuietly(node);
         }
     }
     
@@ -496,15 +495,15 @@ public class TestPersistentEphemeralNode extends 
BaseClassForTests
         byte[] data = "Hello World".getBytes();
              
         PersistentEphemeralNode node = new PersistentEphemeralNode(curator, 
PersistentEphemeralNode.Mode.EPHEMERAL, PATH, data);
-        node.start();
         try
         {
+            node.start();
             node.waitForInitialCreate(timing.forWaiting().seconds(), 
TimeUnit.SECONDS);
             
assertTrue(Arrays.equals(curator.getData().forPath(node.getActualPath()), 
data));
         }
         finally
         {
-            node.close();
+            CloseableUtils.closeQuietly(node);
         }
     }
     
@@ -517,9 +516,9 @@ public class TestPersistentEphemeralNode extends 
BaseClassForTests
         byte[] updatedData = "Updated".getBytes();
              
         PersistentEphemeralNode node = new PersistentEphemeralNode(curator, 
PersistentEphemeralNode.Mode.EPHEMERAL, PATH, initialData);
-        node.start();
         try
         {
+            node.start();
             node.waitForInitialCreate(timing.forWaiting().seconds(), 
TimeUnit.SECONDS);
             
assertTrue(Arrays.equals(curator.getData().forPath(node.getActualPath()), 
initialData));
             
@@ -550,7 +549,7 @@ public class TestPersistentEphemeralNode extends 
BaseClassForTests
         }
         finally
         {
-            node.close();
+            CloseableUtils.closeQuietly(node);
         }      
     }
 
@@ -563,9 +562,9 @@ public class TestPersistentEphemeralNode extends 
BaseClassForTests
         byte[] updatedData = "Updated".getBytes();
 
         PersistentEphemeralNode node = new PersistentEphemeralNode(curator, 
PersistentEphemeralNode.Mode.EPHEMERAL, PATH, initialData);
-        node.start();
         try
         {
+            node.start();
             node.waitForInitialCreate(timing.forWaiting().seconds(), 
TimeUnit.SECONDS);
             
assertTrue(Arrays.equals(curator.getData().forPath(node.getActualPath()), 
initialData));
 
@@ -589,7 +588,7 @@ public class TestPersistentEphemeralNode extends 
BaseClassForTests
         }
         finally
         {
-            node.close();
+            CloseableUtils.closeQuietly(node);
         }
     }
     
@@ -606,9 +605,9 @@ public class TestPersistentEphemeralNode extends 
BaseClassForTests
 
         PersistentEphemeralNode node = new PersistentEphemeralNode(curator, 
PersistentEphemeralNode.Mode.PROTECTED_EPHEMERAL, PATH,
                                                                    new 
byte[0]);
-        node.start();
         try
         {
+            node.start();
             node.waitForInitialCreate(timing.forWaiting().seconds(), 
TimeUnit.SECONDS);
             assertNodeExists(curator, node.getActualPath());
 
@@ -625,7 +624,7 @@ public class TestPersistentEphemeralNode extends 
BaseClassForTests
         }
         finally
         {
-            node.close();
+            CloseableUtils.closeQuietly(node);
         }
     }
     
@@ -638,15 +637,16 @@ public class TestPersistentEphemeralNode extends 
BaseClassForTests
             .authorization("digest", "me1:pass1".getBytes())
             .retryPolicy(new RetryOneTime(1))
             .build();
-        client.start();
-        
-        ACL acl = new ACL(ZooDefs.Perms.WRITE, ZooDefs.Ids.AUTH_IDS);
-        List<ACL> aclList = Lists.newArrayList(acl);
-        client.create().withACL(aclList).forPath(DIR, new byte[0]);
-        client.close();
-        
+
         PersistentEphemeralNode node = null;
         try {
+            client.start();
+
+            ACL acl = new ACL(ZooDefs.Perms.WRITE, ZooDefs.Ids.AUTH_IDS);
+            List<ACL> aclList = Lists.newArrayList(acl);
+            client.create().withACL(aclList).forPath(DIR, new byte[0]);
+            client.close();
+
                //New client without authentication
                client = newCurator();
         
@@ -658,11 +658,8 @@ public class TestPersistentEphemeralNode extends 
BaseClassForTests
             assertNodeDoesNotExist(client, PATH);
             assertTrue(node.isAuthFailure());
         } finally {
-               if(node != null) {
-                   node.close();
-               }
-               
-               client.close();
+            CloseableUtils.closeQuietly(node);
+            CloseableUtils.closeQuietly(client);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/curator/blob/208317ab/curator-test/src/main/java/org/apache/curator/test/BaseClassForTests.java
----------------------------------------------------------------------
diff --git 
a/curator-test/src/main/java/org/apache/curator/test/BaseClassForTests.java 
b/curator-test/src/main/java/org/apache/curator/test/BaseClassForTests.java
index a3bc2b5..d6feca4 100644
--- a/curator-test/src/main/java/org/apache/curator/test/BaseClassForTests.java
+++ b/curator-test/src/main/java/org/apache/curator/test/BaseClassForTests.java
@@ -144,7 +144,10 @@ public class BaseClassForTests
             {
                 e.printStackTrace();
             }
-            server = null;
+            finally
+            {
+                server = null;
+            }
         }
     }
 

http://git-wip-us.apache.org/repos/asf/curator/blob/208317ab/curator-test/src/main/java/org/apache/curator/test/TestingZooKeeperMain.java
----------------------------------------------------------------------
diff --git 
a/curator-test/src/main/java/org/apache/curator/test/TestingZooKeeperMain.java 
b/curator-test/src/main/java/org/apache/curator/test/TestingZooKeeperMain.java
index 795e5d0..330beb1 100644
--- 
a/curator-test/src/main/java/org/apache/curator/test/TestingZooKeeperMain.java
+++ 
b/curator-test/src/main/java/org/apache/curator/test/TestingZooKeeperMain.java
@@ -233,7 +233,7 @@ public class TestingZooKeeperMain implements 
ZooKeeperMainFace
             containerManager.start();
             latch.countDown();
             cnxnFactory.join();
-            if ( zkServer.isRunning()) {
+            if ( (zkServer != null) && zkServer.isRunning()) {
                 zkServer.shutdown();
             }
         } catch (InterruptedException e) {

Reply via email to