BUG-5626: do not allow overriding of RaftActor.handleCommand()
[controller.git] / opendaylight / md-sal / sal-akka-raft / src / main / java / org / opendaylight / controller / cluster / raft / behaviors / Leader.java
index c724e3bc1c8657be7c25ee7bed93689b7925e25e..36e9b646e66f069504e8d220ceafb80bdc0a1b6a 100644 (file)
@@ -63,14 +63,17 @@ public class Leader extends AbstractLeader {
     public RaftActorBehavior handleMessage(ActorRef sender, Object originalMessage) {
         Preconditions.checkNotNull(sender, "sender should not be null");
 
     public RaftActorBehavior handleMessage(ActorRef sender, Object originalMessage) {
         Preconditions.checkNotNull(sender, "sender should not be null");
 
-        if (ISOLATED_LEADER_CHECK.equals(originalMessage) && isLeaderIsolated()) {
-            LOG.warn("{}: At least {} followers need to be active, Switching {} from Leader to IsolatedLeader",
-                context.getId(), getMinIsolatedLeaderPeerCount(), getLeaderId());
-
-            return internalSwitchBehavior(RaftState.IsolatedLeader);
+        if (ISOLATED_LEADER_CHECK.equals(originalMessage)) {
+            if (isLeaderIsolated()) {
+                LOG.warn("{}: At least {} followers need to be active, Switching {} from Leader to IsolatedLeader",
+                    context.getId(), getMinIsolatedLeaderPeerCount(), getLeaderId());
+                return internalSwitchBehavior(RaftState.IsolatedLeader);
+            } else {
+                return this;
+            }
+        } else {
+            return super.handleMessage(sender, originalMessage);
         }
         }
-
-        return super.handleMessage(sender, originalMessage);
     }
 
     @Override
     }
 
     @Override