/**
* The RoleChangeNotifier is responsible for receiving Raft role and leader state change messages and notifying
* the listeners (within the same node), which are registered with it.
- * <p/>
+ *
+ * <p>
* The RoleChangeNotifier is instantiated by the Shard and injected into the RaftActor.
*/
public class RoleChangeNotifier extends AbstractUntypedActor implements AutoCloseable {
}
@Override
- protected void handleReceive(Object message) throws Exception {
+ protected void handleReceive(Object message) {
if (message instanceof RegisterRoleChangeListener) {
// register listeners for this shard
getSender().tell(new RegisterRoleChangeListenerReply(), getSelf());
- if(latestLeaderStateChanged != null) {
+ if (latestLeaderStateChanged != null) {
getSender().tell(latestLeaderStateChanged, getSelf());
}
for (ActorRef listener: registeredListeners.values()) {
listener.tell(latestLeaderStateChanged, getSelf());
}
+ } else {
+ unknownMessage(message);
}
}
@Override
- public void close() throws Exception {
+ public void close() {
registeredListeners.clear();
}
}