You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@curator.apache.org by ra...@apache.org on 2017/07/16 21:06:09 UTC

[1/4] curator git commit: wip for fixing tests

Repository: curator
Updated Branches:
  refs/heads/master c6f7aeb39 -> 7d4f06238


wip for fixing tests


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

Branch: refs/heads/master
Commit: 74013456da1260f9155a72fa651d5d6fa449d984
Parents: 123f2ec
Author: randgalt <ra...@apache.org>
Authored: Sun Jul 16 14:21:23 2017 -0500
Committer: randgalt <ra...@apache.org>
Committed: Sun Jul 16 14:21:23 2017 -0500

----------------------------------------------------------------------
 .../org/apache/curator/x/async/TestBasicOperations.java   | 10 ++++++++++
 .../curator/x/async/modeled/TestModeledFramework.java     |  8 ++++----
 2 files changed, 14 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/curator/blob/74013456/curator-x-async/src/test/java/org/apache/curator/x/async/TestBasicOperations.java
----------------------------------------------------------------------
diff --git a/curator-x-async/src/test/java/org/apache/curator/x/async/TestBasicOperations.java b/curator-x-async/src/test/java/org/apache/curator/x/async/TestBasicOperations.java
index 3e980ec..12d3014 100644
--- a/curator-x-async/src/test/java/org/apache/curator/x/async/TestBasicOperations.java
+++ b/curator-x-async/src/test/java/org/apache/curator/x/async/TestBasicOperations.java
@@ -189,4 +189,14 @@ public class TestBasicOperations extends CompletableBaseClassForTests
             Assert.assertEquals(v.getCode(), KeeperException.Code.CONNECTIONLOSS);
         });
     }
+
+    @Test
+    public void testGetDataWithStat()
+    {
+        complete(client.create().forPath("/test"));
+
+        Stat stat = new Stat();
+        complete(client.getData().storingStatIn(stat).forPath("/test"));
+        Assert.assertEquals(stat.getVersion(), 1);
+    }
 }

http://git-wip-us.apache.org/repos/asf/curator/blob/74013456/curator-x-async/src/test/java/org/apache/curator/x/async/modeled/TestModeledFramework.java
----------------------------------------------------------------------
diff --git a/curator-x-async/src/test/java/org/apache/curator/x/async/modeled/TestModeledFramework.java b/curator-x-async/src/test/java/org/apache/curator/x/async/modeled/TestModeledFramework.java
index 42a9e63..53eb517 100644
--- a/curator-x-async/src/test/java/org/apache/curator/x/async/modeled/TestModeledFramework.java
+++ b/curator-x-async/src/test/java/org/apache/curator/x/async/modeled/TestModeledFramework.java
@@ -102,10 +102,10 @@ public class TestModeledFramework extends TestModeledFrameworkBase
     @Test
     public void testBadNode()
     {
-        complete(async.create().forPath(modelSpec.path().fullPath(), "fubar".getBytes()));
+        complete(async.create().forPath(modelSpec.path().fullPath(), "fubar".getBytes()), (v, e) -> {});    // ignore error
 
         ModeledFramework<TestModel> client = ModeledFramework.builder(async, modelSpec).watched().build();
-        complete(client.read().whenComplete((model, e) -> Assert.assertTrue(e instanceof RuntimeException)));
+        complete(client.read(), (model, e) -> Assert.assertTrue(e instanceof KeeperException.NoNodeException));
     }
 
     @Test
@@ -138,13 +138,13 @@ public class TestModeledFramework extends TestModeledFrameworkBase
     public void testVersioned()
     {
         ModeledFramework<TestModel> client = ModeledFramework.wrap(async, modelSpec);
-        client.set(new TestModel("John", "Galt", "Galt's Gulch", 21, BigInteger.valueOf(1010101)));
+        complete(client.set(new TestModel("John", "Galt", "Galt's Gulch", 21, BigInteger.valueOf(1010101))));
 
         VersionedModeledFramework<TestModel> versioned = client.versioned();
         complete(versioned.read().whenComplete((v, e) -> {
             Assert.assertNull(e);
             Assert.assertTrue(v.version() > 0);
-        }).thenCompose(versioned::set).whenComplete((s, e) -> Assert.assertNull(e))); // version is correct should succeed
+        }).thenCompose(versioned::set), (s, e) -> Assert.assertNull(e)); // version is correct should succeed
 
         complete(versioned.read().whenComplete((v, e) -> {
             Assert.assertNull(e);


[2/4] curator git commit: Merge branch 'master' into CURATOR-419

Posted by ra...@apache.org.
Merge branch 'master' into CURATOR-419


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

Branch: refs/heads/master
Commit: 666b175228d7e642d1b0bbf049119a628501900e
Parents: 7401345 c6f7aeb
Author: randgalt <ra...@apache.org>
Authored: Sun Jul 16 14:46:26 2017 -0500
Committer: randgalt <ra...@apache.org>
Committed: Sun Jul 16 14:46:26 2017 -0500

----------------------------------------------------------------------
 .../org/apache/curator/framework/imps/GetDataBuilderImpl.java   | 5 +++++
 .../java/org/apache/curator/x/async/TestBasicOperations.java    | 4 ++--
 2 files changed, 7 insertions(+), 2 deletions(-)
----------------------------------------------------------------------



[3/4] curator git commit: ModeledFrameworkImpl.set(T item, int version) was ignoring the version

Posted by ra...@apache.org.
ModeledFrameworkImpl.set(T item, int version) was ignoring the version


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

Branch: refs/heads/master
Commit: 05d37e961978719ab1ebeb40ff7bd5e7a8605f5e
Parents: 666b175
Author: randgalt <ra...@apache.org>
Authored: Sun Jul 16 14:53:30 2017 -0500
Committer: randgalt <ra...@apache.org>
Committed: Sun Jul 16 14:53:30 2017 -0500

----------------------------------------------------------------------
 .../modeled/details/ModeledFrameworkImpl.java   |  2 +-
 .../x/async/modeled/TestModeledFramework.java   | 30 +++++++-------------
 2 files changed, 12 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/curator/blob/05d37e96/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/details/ModeledFrameworkImpl.java
----------------------------------------------------------------------
diff --git a/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/details/ModeledFrameworkImpl.java b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/details/ModeledFrameworkImpl.java
index 44011ee..aa98602 100644
--- a/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/details/ModeledFrameworkImpl.java
+++ b/curator-x-async/src/main/java/org/apache/curator/x/async/modeled/details/ModeledFrameworkImpl.java
@@ -156,7 +156,7 @@ public class ModeledFrameworkImpl<T> implements ModeledFramework<T>
     @Override
     public AsyncStage<String> set(T item, int version)
     {
-        return set(item, null, -1);
+        return set(item, null, version);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/curator/blob/05d37e96/curator-x-async/src/test/java/org/apache/curator/x/async/modeled/TestModeledFramework.java
----------------------------------------------------------------------
diff --git a/curator-x-async/src/test/java/org/apache/curator/x/async/modeled/TestModeledFramework.java b/curator-x-async/src/test/java/org/apache/curator/x/async/modeled/TestModeledFramework.java
index 53eb517..a5ed998 100644
--- a/curator-x-async/src/test/java/org/apache/curator/x/async/modeled/TestModeledFramework.java
+++ b/curator-x-async/src/test/java/org/apache/curator/x/async/modeled/TestModeledFramework.java
@@ -16,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
 package org.apache.curator.x.async.modeled;
 
 import com.google.common.collect.Sets;
@@ -102,7 +103,8 @@ public class TestModeledFramework extends TestModeledFrameworkBase
     @Test
     public void testBadNode()
     {
-        complete(async.create().forPath(modelSpec.path().fullPath(), "fubar".getBytes()), (v, e) -> {});    // ignore error
+        complete(async.create().forPath(modelSpec.path().fullPath(), "fubar".getBytes()), (v, e) -> {
+        });    // ignore error
 
         ModeledFramework<TestModel> client = ModeledFramework.builder(async, modelSpec).watched().build();
         complete(client.read(), (model, e) -> Assert.assertTrue(e instanceof KeeperException.NoNodeException));
@@ -112,11 +114,8 @@ public class TestModeledFramework extends TestModeledFrameworkBase
     public void testSchema() throws Exception
     {
         Schema schema = modelSpec.schema();
-        try ( CuratorFramework schemaClient = CuratorFrameworkFactory.builder()
-            .connectString(server.getConnectString())
-            .retryPolicy(new RetryOneTime(1))
-            .schemaSet(new SchemaSet(Collections.singletonList(schema), false))
-            .build() ) {
+        try (CuratorFramework schemaClient = CuratorFrameworkFactory.builder().connectString(server.getConnectString()).retryPolicy(new RetryOneTime(1)).schemaSet(new SchemaSet(Collections.singletonList(schema), false)).build())
+        {
             schemaClient.start();
 
             try
@@ -138,7 +137,9 @@ public class TestModeledFramework extends TestModeledFrameworkBase
     public void testVersioned()
     {
         ModeledFramework<TestModel> client = ModeledFramework.wrap(async, modelSpec);
-        complete(client.set(new TestModel("John", "Galt", "Galt's Gulch", 21, BigInteger.valueOf(1010101))));
+        TestModel model = new TestModel("John", "Galt", "Galt's Gulch", 21, BigInteger.valueOf(1010101));
+        complete(client.set(model));
+        complete(client.set(model));   // so that version goes to 1
 
         VersionedModeledFramework<TestModel> versioned = client.versioned();
         complete(versioned.read().whenComplete((v, e) -> {
@@ -146,13 +147,8 @@ public class TestModeledFramework extends TestModeledFrameworkBase
             Assert.assertTrue(v.version() > 0);
         }).thenCompose(versioned::set), (s, e) -> Assert.assertNull(e)); // version is correct should succeed
 
-        complete(versioned.read().whenComplete((v, e) -> {
-            Assert.assertNull(e);
-            Assert.assertTrue(v.version() > 0);
-        }).thenCompose(value -> {
-            Versioned<TestModel> badVersion = Versioned.from(value.model(), Integer.MAX_VALUE);
-            return versioned.set(badVersion);
-        }).whenComplete((s, e) -> Assert.assertTrue(e instanceof KeeperException.BadVersionException)));
+        Versioned<TestModel> badVersion = Versioned.from(model, 100000);
+        complete(versioned.set(badVersion), (v, e) -> Assert.assertTrue(e instanceof KeeperException.BadVersionException));
     }
 
     @Test
@@ -164,11 +160,7 @@ public class TestModeledFramework extends TestModeledFrameworkBase
         complete(client.set(new TestModel("John", "Galt", "Galt's Gulch", 21, BigInteger.valueOf(1010101))));
         complete(client.update(new TestModel("John", "Galt", "Galt's Gulch", 54, BigInteger.valueOf(88))), (__, e) -> Assert.assertNotNull(e, "Should've gotten an auth failure"));
 
-        try ( CuratorFramework authCurator = CuratorFrameworkFactory.builder()
-            .connectString(server.getConnectString())
-            .retryPolicy(new RetryOneTime(1))
-            .authorization("digest", "test:test".getBytes())
-            .build() )
+        try (CuratorFramework authCurator = CuratorFrameworkFactory.builder().connectString(server.getConnectString()).retryPolicy(new RetryOneTime(1)).authorization("digest", "test:test".getBytes()).build())
         {
             authCurator.start();
             ModeledFramework<TestModel> authClient = ModeledFramework.wrap(AsyncCuratorFramework.wrap(authCurator), aclModelSpec);


[4/4] curator git commit: tests cleanup was closing in wrong order causing instability

Posted by ra...@apache.org.
tests cleanup was closing in wrong order causing instability


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

Branch: refs/heads/master
Commit: 7d4f0623885c8c00a28819bcb823ad3d6a8732d1
Parents: 05d37e9
Author: randgalt <ra...@apache.org>
Authored: Sun Jul 16 16:05:52 2017 -0500
Committer: randgalt <ra...@apache.org>
Committed: Sun Jul 16 16:05:52 2017 -0500

----------------------------------------------------------------------
 .../discovery/details/TestServiceDiscovery.java | 130 +++++++------------
 1 file changed, 49 insertions(+), 81 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/curator/blob/7d4f0623/curator-x-discovery/src/test/java/org/apache/curator/x/discovery/details/TestServiceDiscovery.java
----------------------------------------------------------------------
diff --git a/curator-x-discovery/src/test/java/org/apache/curator/x/discovery/details/TestServiceDiscovery.java b/curator-x-discovery/src/test/java/org/apache/curator/x/discovery/details/TestServiceDiscovery.java
index 989edaf..47c74d5 100644
--- a/curator-x-discovery/src/test/java/org/apache/curator/x/discovery/details/TestServiceDiscovery.java
+++ b/curator-x-discovery/src/test/java/org/apache/curator/x/discovery/details/TestServiceDiscovery.java
@@ -33,7 +33,6 @@ import org.apache.curator.x.discovery.ServiceDiscoveryBuilder;
 import org.apache.curator.x.discovery.ServiceInstance;
 import org.testng.Assert;
 import org.testng.annotations.Test;
-import java.io.Closeable;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
@@ -54,18 +53,18 @@ public class TestServiceDiscovery extends BaseClassForTests
     @Test
     public void testCrashedServerMultiInstances() throws Exception
     {
-        List<Closeable> closeables = Lists.newArrayList();
+        CuratorFramework client = null;
+        ServiceDiscovery<String> discovery = null;
         try
         {
             Timing timing = new Timing();
-            CuratorFramework client = CuratorFrameworkFactory.newClient(server.getConnectString(), timing.session(), timing.connection(), new RetryOneTime(1));
-            closeables.add(client);
+            client = CuratorFrameworkFactory.newClient(server.getConnectString(), timing.session(), timing.connection(), new RetryOneTime(1));
             client.start();
 
             final Semaphore semaphore = new Semaphore(0);
             ServiceInstance<String> instance1 = ServiceInstance.<String>builder().payload("thing").name("test").port(10064).build();
             ServiceInstance<String> instance2 = ServiceInstance.<String>builder().payload("thing").name("test").port(10065).build();
-            ServiceDiscovery<String> discovery = new ServiceDiscoveryImpl<String>(client, "/test", new JsonInstanceSerializer<String>(String.class), instance1, false)
+            discovery = new ServiceDiscoveryImpl<String>(client, "/test", new JsonInstanceSerializer<String>(String.class), instance1, false)
             {
                 @Override
                 protected void internalRegisterService(ServiceInstance<String> service) throws Exception
@@ -74,7 +73,6 @@ public class TestServiceDiscovery extends BaseClassForTests
                     semaphore.release();
                 }
             };
-            closeables.add(discovery);
             discovery.start();
             discovery.registerService(instance2);
 
@@ -85,34 +83,31 @@ public class TestServiceDiscovery extends BaseClassForTests
             server.stop();
 
             server.restart();
-            closeables.add(server);
 
             timing.acquireSemaphore(semaphore, 2);
             Assert.assertEquals(discovery.queryForInstances("test").size(), 2);
         }
         finally
         {
-            for ( Closeable c : closeables )
-            {
-                CloseableUtils.closeQuietly(c);
-            }
+            CloseableUtils.closeQuietly(discovery);
+            CloseableUtils.closeQuietly(client);
         }
     }
 
     @Test
     public void testCrashedServer() throws Exception
     {
-        List<Closeable> closeables = Lists.newArrayList();
+        CuratorFramework client = null;
+        ServiceDiscovery<String> discovery = null;
         try
         {
             Timing timing = new Timing();
-            CuratorFramework client = CuratorFrameworkFactory.newClient(server.getConnectString(), timing.session(), timing.connection(), new RetryOneTime(1));
-            closeables.add(client);
+            client = CuratorFrameworkFactory.newClient(server.getConnectString(), timing.session(), timing.connection(), new RetryOneTime(1));
             client.start();
 
             final Semaphore semaphore = new Semaphore(0);
             ServiceInstance<String> instance = ServiceInstance.<String>builder().payload("thing").name("test").port(10064).build();
-            ServiceDiscovery<String> discovery = new ServiceDiscoveryImpl<String>(client, "/test", new JsonInstanceSerializer<String>(String.class), instance, false)
+            discovery = new ServiceDiscoveryImpl<String>(client, "/test", new JsonInstanceSerializer<String>(String.class), instance, false)
             {
                 @Override
                 protected void internalRegisterService(ServiceInstance<String> service) throws Exception
@@ -121,7 +116,6 @@ public class TestServiceDiscovery extends BaseClassForTests
                     semaphore.release();
                 }
             };
-            closeables.add(discovery);
             discovery.start();
 
             timing.acquireSemaphore(semaphore);
@@ -131,35 +125,31 @@ public class TestServiceDiscovery extends BaseClassForTests
             server.stop();
 
             server.restart();
-            closeables.add(server);
 
             timing.acquireSemaphore(semaphore);
             Assert.assertEquals(discovery.queryForInstances("test").size(), 1);
         }
         finally
         {
-            for ( Closeable c : closeables )
-            {
-                CloseableUtils.closeQuietly(c);
-            }
+            CloseableUtils.closeQuietly(discovery);
+            CloseableUtils.closeQuietly(client);
         }
     }
 
     @Test
     public void testCrashedInstance() throws Exception
     {
-        List<Closeable> closeables = Lists.newArrayList();
+        CuratorFramework client = null;
+        ServiceDiscovery<String> discovery = null;
         try
         {
             Timing timing = new Timing();
 
-            CuratorFramework client = CuratorFrameworkFactory.newClient(server.getConnectString(), timing.session(), timing.connection(), new RetryOneTime(1));
-            closeables.add(client);
+            client = CuratorFrameworkFactory.newClient(server.getConnectString(), timing.session(), timing.connection(), new RetryOneTime(1));
             client.start();
 
             ServiceInstance<String> instance = ServiceInstance.<String>builder().payload("thing").name("test").port(10064).build();
-            ServiceDiscovery<String> discovery = new ServiceDiscoveryImpl<String>(client, "/test", new JsonInstanceSerializer<String>(String.class), instance, false);
-            closeables.add(discovery);
+            discovery = new ServiceDiscoveryImpl<String>(client, "/test", new JsonInstanceSerializer<String>(String.class), instance, false);
             discovery.start();
 
             Assert.assertEquals(discovery.queryForInstances("test").size(), 1);
@@ -171,11 +161,8 @@ public class TestServiceDiscovery extends BaseClassForTests
         }
         finally
         {
-            Collections.reverse(closeables);
-            for ( Closeable c : closeables )
-            {
-                CloseableUtils.closeQuietly(c);
-            }
+            CloseableUtils.closeQuietly(discovery);
+            CloseableUtils.closeQuietly(client);
         }
     }
 
@@ -185,11 +172,11 @@ public class TestServiceDiscovery extends BaseClassForTests
         final String SERVICE_ONE = "one";
         final String SERVICE_TWO = "two";
 
-        List<Closeable> closeables = Lists.newArrayList();
+        CuratorFramework client = null;
+        ServiceDiscovery<Void> discovery = null;
         try
         {
-            CuratorFramework client = CuratorFrameworkFactory.newClient(server.getConnectString(), new RetryOneTime(1));
-            closeables.add(client);
+            client = CuratorFrameworkFactory.newClient(server.getConnectString(), new RetryOneTime(1));
             client.start();
 
             ServiceInstance<Void> s1_i1 = ServiceInstance.<Void>builder().name(SERVICE_ONE).build();
@@ -197,8 +184,7 @@ public class TestServiceDiscovery extends BaseClassForTests
             ServiceInstance<Void> s2_i1 = ServiceInstance.<Void>builder().name(SERVICE_TWO).build();
             ServiceInstance<Void> s2_i2 = ServiceInstance.<Void>builder().name(SERVICE_TWO).build();
 
-            ServiceDiscovery<Void> discovery = ServiceDiscoveryBuilder.builder(Void.class).client(client).basePath("/test").build();
-            closeables.add(discovery);
+            discovery = ServiceDiscoveryBuilder.builder(Void.class).client(client).basePath("/test").build();
             discovery.start();
 
             discovery.registerService(s1_i1);
@@ -227,27 +213,23 @@ public class TestServiceDiscovery extends BaseClassForTests
         }
         finally
         {
-            Collections.reverse(closeables);
-            for ( Closeable c : closeables )
-            {
-                CloseableUtils.closeQuietly(c);
-            }
+            CloseableUtils.closeQuietly(discovery);
+            CloseableUtils.closeQuietly(client);
         }
     }
 
     @Test
     public void testBasic() throws Exception
     {
-        List<Closeable> closeables = Lists.newArrayList();
+        CuratorFramework client = null;
+        ServiceDiscovery<String> discovery = null;
         try
         {
-            CuratorFramework client = CuratorFrameworkFactory.newClient(server.getConnectString(), new RetryOneTime(1));
-            closeables.add(client);
+            client = CuratorFrameworkFactory.newClient(server.getConnectString(), new RetryOneTime(1));
             client.start();
 
             ServiceInstance<String> instance = ServiceInstance.<String>builder().payload("thing").name("test").port(10064).build();
-            ServiceDiscovery<String> discovery = ServiceDiscoveryBuilder.builder(String.class).basePath("/test").client(client).thisInstance(instance).build();
-            closeables.add(discovery);
+            discovery = ServiceDiscoveryBuilder.builder(String.class).basePath("/test").client(client).thisInstance(instance).build();
             discovery.start();
 
             Assert.assertEquals(discovery.queryForNames(), Collections.singletonList("test"));
@@ -258,11 +240,8 @@ public class TestServiceDiscovery extends BaseClassForTests
         }
         finally
         {
-            Collections.reverse(closeables);
-            for ( Closeable c : closeables )
-            {
-                CloseableUtils.closeQuietly(c);
-            }
+            CloseableUtils.closeQuietly(discovery);
+            CloseableUtils.closeQuietly(client);
         }
     }
 
@@ -271,16 +250,16 @@ public class TestServiceDiscovery extends BaseClassForTests
     {
         Timing timing = new Timing();
         server.stop();
-        List<Closeable> closeables = Lists.newArrayList();
+
+        CuratorFramework client = null;
+        ServiceDiscovery<String> discovery = null;
         try
         {
-            CuratorFramework client = CuratorFrameworkFactory.newClient(server.getConnectString(), new RetryOneTime(1));
-            closeables.add(client);
+            client = CuratorFrameworkFactory.newClient(server.getConnectString(), new RetryOneTime(1));
             client.start();
 
             ServiceInstance<String> instance = ServiceInstance.<String>builder().payload("thing").name("test").port(10064).build();
-            ServiceDiscovery<String> discovery = ServiceDiscoveryBuilder.builder(String.class).basePath("/test").client(client).thisInstance(instance).build();
-            closeables.add(discovery);
+            discovery = ServiceDiscoveryBuilder.builder(String.class).basePath("/test").client(client).thisInstance(instance).build();
             discovery.start();
 
             server.restart();
@@ -293,11 +272,8 @@ public class TestServiceDiscovery extends BaseClassForTests
         }
         finally
         {
-            Collections.reverse(closeables);
-            for ( Closeable c : closeables )
-            {
-                CloseableUtils.closeQuietly(c);
-            }
+            CloseableUtils.closeQuietly(discovery);
+            CloseableUtils.closeQuietly(client);
         }
     }
 
@@ -308,7 +284,6 @@ public class TestServiceDiscovery extends BaseClassForTests
         final String name = "name";
 
         final CountDownLatch restartLatch = new CountDownLatch(1);
-        List<Closeable> closeables = Lists.newArrayList();
 
         InstanceSerializer<String> slowSerializer = new JsonInstanceSerializer<String>(String.class)
         {
@@ -333,15 +308,15 @@ public class TestServiceDiscovery extends BaseClassForTests
             }
         };
 
+        CuratorFramework client = null;
+        ServiceDiscovery<String> discovery = null;
         try
         {
-            CuratorFramework client = CuratorFrameworkFactory.newClient(server.getConnectString(), new RetryOneTime(1));
-            closeables.add(client);
+            client = CuratorFrameworkFactory.newClient(server.getConnectString(), new RetryOneTime(1));
             client.start();
 
             ServiceInstance<String> instance = ServiceInstance.<String>builder().payload("thing").name(name).port(10064).build();
-            ServiceDiscovery<String> discovery = ServiceDiscoveryBuilder.builder(String.class).basePath("/test").client(client).thisInstance(instance).serializer(slowSerializer).watchInstances(true).build();
-            closeables.add(discovery);
+            discovery = ServiceDiscoveryBuilder.builder(String.class).basePath("/test").client(client).thisInstance(instance).serializer(slowSerializer).watchInstances(true).build();
             discovery.start();
 
             Assert.assertFalse(discovery.queryForInstances(name).isEmpty(), "Service should start registered.");
@@ -358,27 +333,23 @@ public class TestServiceDiscovery extends BaseClassForTests
         }
         finally
         {
-            Collections.reverse(closeables);
-            for ( Closeable c : closeables )
-            {
-                CloseableUtils.closeQuietly(c);
-            }
+            CloseableUtils.closeQuietly(discovery);
+            CloseableUtils.closeQuietly(client);
         }
     }
 
     @Test
     public void testCleaning() throws Exception
     {
-        List<Closeable> closeables = Lists.newArrayList();
+        CuratorFramework client = null;
+        ServiceDiscovery<String> discovery = null;
         try
         {
-            CuratorFramework client = CuratorFrameworkFactory.newClient(server.getConnectString(), new RetryOneTime(1));
-            closeables.add(client);
+            client = CuratorFrameworkFactory.newClient(server.getConnectString(), new RetryOneTime(1));
             client.start();
 
             ServiceInstance<String> instance = ServiceInstance.<String>builder().payload("thing").name("test").port(10064).build();
-            ServiceDiscovery<String> discovery = ServiceDiscoveryBuilder.builder(String.class).basePath("/test").client(client).thisInstance(instance).build();
-            closeables.add(discovery);
+            discovery = ServiceDiscoveryBuilder.builder(String.class).basePath("/test").client(client).thisInstance(instance).build();
             discovery.start();
             discovery.unregisterService(instance);
 
@@ -386,11 +357,8 @@ public class TestServiceDiscovery extends BaseClassForTests
         }
         finally
         {
-            Collections.reverse(closeables);
-            for ( Closeable c : closeables )
-            {
-                CloseableUtils.closeQuietly(c);
-            }
+            CloseableUtils.closeQuietly(discovery);
+            CloseableUtils.closeQuietly(client);
         }
     }
 }