From a7652dde60ebaca99cfebe3b84c7b3db62027bfb Mon Sep 17 00:00:00 2001 From: Valerij Fredriksen Date: Mon, 25 Sep 2017 15:02:08 +0200 Subject: Make classLock an Optional --- .../hosted/node/admin/nodeadmin/NodeAdminStateUpdater.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'node-admin') diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdater.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdater.java index 8dbada334b8..f2dd445f8c8 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdater.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdater.java @@ -22,6 +22,7 @@ import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; @@ -61,7 +62,7 @@ public class NodeAdminStateUpdater { private final Duration nodeAdminConvergeStateInterval; private final ClassLocking classLocking; - private ClassLock classLock; + private Optional classLock; private Instant lastTick; public NodeAdminStateUpdater( @@ -86,8 +87,9 @@ public class NodeAdminStateUpdater { this.loopThread = new Thread(() -> { log.info(objectToString() + ": Acquiring lock"); try { - classLock = classLocking.tryLock(NodeAdminStateUpdater.class, () -> !terminated.get()); + classLock = Optional.of(classLocking.tryLock(NodeAdminStateUpdater.class, () -> !terminated.get())); } catch (LockInterruptException e) { + classLock = Optional.empty(); return; } @@ -315,10 +317,10 @@ public class NodeAdminStateUpdater { // Finally, stop NodeAdmin and all the NodeAgents nodeAdmin.stop(); - log.info(objectToString() + ": Releasing lock"); - if (classLock != null) { - classLock.close(); - } + classLock.ifPresent(lock -> { + log.info(objectToString() + ": Releasing lock"); + lock.close(); + }); log.info(objectToString() + ": Stop complete"); } } -- cgit v1.2.3