diff options
author | Valerij Fredriksen <valerijf@oath.com> | 2017-09-25 15:02:08 +0200 |
---|---|---|
committer | Valerij Fredriksen <valerijf@oath.com> | 2017-09-25 15:02:08 +0200 |
commit | a7652dde60ebaca99cfebe3b84c7b3db62027bfb (patch) | |
tree | 74287d9d9eb8bd08ab09b4516e4100e479cc2255 /node-admin | |
parent | be5760126042eac8922dd92be605d0722b521e78 (diff) |
Make classLock an Optional
Diffstat (limited to 'node-admin')
-rw-r--r-- | node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdater.java | 14 |
1 files changed, 8 insertions, 6 deletions
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> 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"); } } |