diff --git a/broker/src/main/java/org/eclipse/moquette/server/netty/NettyChannel.java b/broker/src/main/java/org/eclipse/moquette/server/netty/NettyChannel.java index 9f1cb32c..651c08e1 100644 --- a/broker/src/main/java/org/eclipse/moquette/server/netty/NettyChannel.java +++ b/broker/src/main/java/org/eclipse/moquette/server/netty/NettyChannel.java @@ -80,5 +80,10 @@ public class NettyChannel implements ServerChannel { public void write(Object value) { m_channel.writeAndFlush(value); } - + + @Override + public String toString() { + String clientID = (String) getAttribute(Constants.ATTR_CLIENTID); + return "session [clientID "+ clientID +"]"; + } } diff --git a/broker/src/main/java/org/eclipse/moquette/spi/impl/SimpleMessaging.java b/broker/src/main/java/org/eclipse/moquette/spi/impl/SimpleMessaging.java index 654cc5b3..0cff3ca8 100644 --- a/broker/src/main/java/org/eclipse/moquette/spi/impl/SimpleMessaging.java +++ b/broker/src/main/java/org/eclipse/moquette/spi/impl/SimpleMessaging.java @@ -152,7 +152,11 @@ public class SimpleMessaging implements IMessaging, EventHandler { if (evt instanceof ProtocolEvent) { ServerChannel session = ((ProtocolEvent) evt).getSession(); AbstractMessage message = ((ProtocolEvent) evt).getMessage(); - annotationSupport.dispatch(session, message); + try { + annotationSupport.dispatch(session, message); + } catch (Throwable th) { + LOG.error("Grave error processing the message {} for {}", message, session, th); + } } } diff --git a/parser_commons/src/main/java/org/eclipse/moquette/proto/messages/ConnectMessage.java b/parser_commons/src/main/java/org/eclipse/moquette/proto/messages/ConnectMessage.java index 8f3ccc32..67b02c62 100644 --- a/parser_commons/src/main/java/org/eclipse/moquette/proto/messages/ConnectMessage.java +++ b/parser_commons/src/main/java/org/eclipse/moquette/proto/messages/ConnectMessage.java @@ -155,5 +155,13 @@ public class ConnectMessage extends AbstractMessage { public void setWillMessage(String willMessage) { this.m_willMessage = willMessage; } - + + @Override + public String toString() { + String base = String.format("Connect [clientID: %s, prot: %s, ver: %02X, clean: %b]", m_clientID, m_protocolName, m_procotolVersion, m_cleanSession); + if (m_willFlag) { + base += String.format(" Will [QoS: %d, retain: %b]", m_willQos, m_willRetain); + } + return base; + } }