X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-akka-raft%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fraft%2FTimedRunnable.java;h=95606657562ce865e3664d2973e248a1f069a3ca;hp=933b134341ae6502c59074d75c27f1a9f275d6dc;hb=0f02b7edeb1454c1a568f0f1b050757e7503ddf7;hpb=135129e0cca66040fd512fab740d59b2ab1f8382 diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/TimedRunnable.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/TimedRunnable.java index 933b134341..9560665756 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/TimedRunnable.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/TimedRunnable.java @@ -14,6 +14,7 @@ import scala.concurrent.duration.FiniteDuration; /** * An abstract class that implements a Runnable operation with a timer such that if the run method isn't * invoked within a timeout period, the operation is cancelled via {@link #doCancel}. + * *

* Note: this class is not thread safe and is intended for use only within the context of the same * actor that's passed on construction. The run method must be called on this actor's thread dispatcher as it @@ -28,17 +29,13 @@ abstract class TimedRunnable implements Runnable { TimedRunnable(FiniteDuration timeout, RaftActor actor) { Preconditions.checkNotNull(timeout); Preconditions.checkNotNull(actor); - cancelTimer = actor.getContext().system().scheduler().scheduleOnce(timeout, actor.self(), new Runnable() { - @Override - public void run() { - cancel(); - } - }, actor.getContext().system().dispatcher(), actor.self()); + cancelTimer = actor.getContext().system().scheduler().scheduleOnce(timeout, actor.self(), + (Runnable) this::cancel, actor.getContext().system().dispatcher(), actor.self()); } @Override public void run() { - if(canRun) { + if (canRun) { canRun = false; cancelTimer.cancel(); doRun();