diff options
-rw-r--r-- | zkfacade/src/main/java/com/yahoo/vespa/curator/SingletonManager.java | 5 | ||||
-rw-r--r-- | zkfacade/src/test/java/com/yahoo/vespa/curator/CuratorWrapperTest.java | 4 |
2 files changed, 5 insertions, 4 deletions
diff --git a/zkfacade/src/main/java/com/yahoo/vespa/curator/SingletonManager.java b/zkfacade/src/main/java/com/yahoo/vespa/curator/SingletonManager.java index 96511a5dd1c..ef8759b2bbc 100644 --- a/zkfacade/src/main/java/com/yahoo/vespa/curator/SingletonManager.java +++ b/zkfacade/src/main/java/com/yahoo/vespa/curator/SingletonManager.java @@ -176,8 +176,6 @@ class SingletonManager { } } } - for (Task task : tasks) task.future.cancel(true); - unlock(); } catch (Throwable t) { Process.logAndDie(worker + " can't continue, shutting down", t); @@ -329,9 +327,12 @@ class SingletonManager { } void shutdown() { + assert Thread.currentThread() == worker : "shutdown should be run in the worker thread"; if ( ! shutdown.compareAndSet(false, true)) { logger.log(Level.WARNING, "Shutdown called more than once on " + this); } + unlock(); + for (Task task : tasks) task.future.cancel(true); } private class MetricHelper { diff --git a/zkfacade/src/test/java/com/yahoo/vespa/curator/CuratorWrapperTest.java b/zkfacade/src/test/java/com/yahoo/vespa/curator/CuratorWrapperTest.java index 82b9693b8fe..cd96ba78bd3 100644 --- a/zkfacade/src/test/java/com/yahoo/vespa/curator/CuratorWrapperTest.java +++ b/zkfacade/src/test/java/com/yahoo/vespa/curator/CuratorWrapperTest.java @@ -197,12 +197,12 @@ public class CuratorWrapperTest { RuntimeException e = assertThrows(RuntimeException.class, () -> new Singleton(curator) { @Override public void activate() { - throw new RuntimeException(); + throw new RuntimeException("expected test exception"); } @Override public void deactivate() { stunning.arriveAndAwaitAdvance(); stunning.arriveAndAwaitAdvance(); - throw new RuntimeException(); + throw new RuntimeException("expected test exception"); } @Override public String toString() { return "failing singleton"; |