Prior to this commit, a failure to send a heartbeat was ignored and a
failure to forward a message to the broker would result in an error
frame being sent but nothing more.
Following this commit, a failure to send a heartbeat to the broker
is treated as a TCP client failure. Furthermore, if the system relay
session fails to forward a message to the broker an exception is
thrown. Typically, the system relay session will be forwarding
messages on behalf of local application code, rather than a remote
WebSocket client. Throwing an exception allows the application code
to be notified of the problem directly, rather than via a broker
availability event.
pull/370/head
Andy Wilkinson12 years agocommitted byRossen Stoyanchev
@ -205,34 +206,29 @@ public class StompBrokerRelayMessageHandler extends AbstractBrokerMessageHandler
@@ -205,34 +206,29 @@ public class StompBrokerRelayMessageHandler extends AbstractBrokerMessageHandler
logger.warn("Session id="+sessionId+" not found. Ignoring message: "+message);
return;
}
session.forward(message);
}
}
@ -323,7 +319,7 @@ public class StompBrokerRelayMessageHandler extends AbstractBrokerMessageHandler
@@ -323,7 +319,7 @@ public class StompBrokerRelayMessageHandler extends AbstractBrokerMessageHandler
@ -348,13 +344,21 @@ public class StompBrokerRelayMessageHandler extends AbstractBrokerMessageHandler
@@ -348,13 +344,21 @@ public class StompBrokerRelayMessageHandler extends AbstractBrokerMessageHandler
logger.warn("Failed to forward message to the broker. message="+message);
}
forwardInternal(tcpConnection,message);
}
privatebooleanforwardInternal(
@ -491,32 +495,40 @@ public class StompBrokerRelayMessageHandler extends AbstractBrokerMessageHandler
@@ -491,32 +495,40 @@ public class StompBrokerRelayMessageHandler extends AbstractBrokerMessageHandler
Stringmessage="Broker hearbeat missed: connection idle for more than "+interval+"ms";
logger.warn(message);
if(logger.isWarnEnabled()){
logger.warn(message);
}
disconnected(message);
}
});
@ -537,6 +549,12 @@ public class StompBrokerRelayMessageHandler extends AbstractBrokerMessageHandler
@@ -537,6 +549,12 @@ public class StompBrokerRelayMessageHandler extends AbstractBrokerMessageHandler
@ -143,6 +144,12 @@ public class StompBrokerRelayMessageHandlerIntegrationTests {
@@ -143,6 +144,12 @@ public class StompBrokerRelayMessageHandlerIntegrationTests {