diff --git a/broker/src/main/java/org/dna/mqtt/moquette/messaging/spi/impl/SimpleMessaging.java b/broker/src/main/java/org/dna/mqtt/moquette/messaging/spi/impl/SimpleMessaging.java index c90d3f21..db4d0085 100644 --- a/broker/src/main/java/org/dna/mqtt/moquette/messaging/spi/impl/SimpleMessaging.java +++ b/broker/src/main/java/org/dna/mqtt/moquette/messaging/spi/impl/SimpleMessaging.java @@ -408,7 +408,7 @@ public class SimpleMessaging implements IMessaging, EventHandler { LOG.debug("processSubscribe invoked"); for (SubscribeMessage.Couple req : msg.subscriptions()) { - QOSType qos = AbstractMessage.QOSType.values()[req.getQos()]; + QOSType qos = AbstractMessage.QOSType.fromByte(req.getQos()); Subscription newSubscription = new Subscription(clientID, req.getTopic(), qos, cleanSession); subscribeSingleTopic(newSubscription, req.getTopic()); } @@ -423,7 +423,6 @@ public class SimpleMessaging implements IMessaging, EventHandler { } LOG.info("replying with SubAct to MSG ID " + msg.getMessageID()); session.write(ackMessage); - } /** diff --git a/parser/src/main/java/org/dna/mqtt/moquette/proto/messages/AbstractMessage.java b/parser/src/main/java/org/dna/mqtt/moquette/proto/messages/AbstractMessage.java index 8e11b30e..ad6989f4 100644 --- a/parser/src/main/java/org/dna/mqtt/moquette/proto/messages/AbstractMessage.java +++ b/parser/src/main/java/org/dna/mqtt/moquette/proto/messages/AbstractMessage.java @@ -25,6 +25,10 @@ public abstract class AbstractMessage { public static enum QOSType { MOST_ONE, LEAST_ONE, EXACTLY_ONCE, RESERVED; + + public static QOSType fromByte(byte val) { + return AbstractMessage.QOSType.values()[val]; + } } //type protected boolean m_dupFlag;