Fixed infinite 'no next node in topology' loop - Fixes
@@ -2791,11 +2791,21 @@ class ServerImpl extends TcpDiscoveryImpl {
}
/**
- * Adds message to queue.
+ * Adds message to queue. Equivalent to {@code addMessage(msg, false)}.
*
* @param msg Message to add.
*/
void addMessage(TcpDiscoveryAbstractMessage msg) {
+ addMessage(msg, false);
+ }
+
+ /**
+ * Adds message to queue.
+ *
+ * @param msg Message to add.
+ * @param ignoreHighPriority If {@code true}, high priority messages will be added to the top of the queue.
+ */
+ void addMessage(TcpDiscoveryAbstractMessage msg, boolean ignoreHighPriority) {
DebugLogger log = messageLogger(msg);
if ((msg instanceof TcpDiscoveryStatusCheckMessage ||
@@ -2809,7 +2819,7 @@ class ServerImpl extends TcpDiscoveryImpl {
return;
}
- if (msg.highPriority())
+ if (msg.highPriority() && !ignoreHighPriority)
queue.addFirst(msg);
else
queue.add(msg);
@@ -3129,7 +3139,7 @@ class ServerImpl extends TcpDiscoveryImpl {
!(msg instanceof TcpDiscoveryStatusCheckMessage && msg.creatorNodeId().equals(locNodeId))) {
msg.senderNodeId(locNodeId);
- addMessage(msg);
+ addMessage(msg, true);
}
break;
