Open begone1992 opened 2 years ago
I am trying to create mqtt message from code and then publish it.
But in PublishListener event when I am trying get payload this exception io.netty.util.IllegalReferenceCountException: refCnt: 0 throws every time.
Here is my code: _mqttBroker = new Server(); final List<? extends InterceptHandler> userHandlers = Arrays.asList(new PublisherListener()); _mqttBroker.startServer(server_config, userHandlers); String clientID = "a2bae31a-6c4f-4076-ae66-5aadf3668b0a"; MqttFixedHeader mqttFixedHeader = new MqttFixedHeader(MqttMessageType.PUBLISH, false, MqttQoS.AT_LEAST_ONCE, false, 0); MqttPublishVariableHeader headerTopic = new MqttPublishVariableHeader(topic, 0); ByteBuf anypayload = Unpooled.wrappedBuffer(data.getBytes()); MqttPublishMessage msg = new MqttPublishMessage(mqttFixedHeader, headerTopic, anypayload); _mqttBroker.internalPublish(msg, clientID); InterceptPublishMessage message = new InterceptPublishMessage(msg, clientID, clientID); new PublisherListener().onPublish(message);
public void onPublish(InterceptPublishMessage message) { System.out.println("moquette mqtt broker message intercepted, topic: " + message.getTopicName()
moquette-broker-0.15
java -version
1.8.0_312
uname -a
Ubuntu 20
The code you posted is very incomplete. Can you make a self-contained test that shows the issue?
Expected behavior
I am trying to create mqtt message from code and then publish it.
Actual behavior
But in PublishListener event when I am trying get payload this exception io.netty.util.IllegalReferenceCountException: refCnt: 0 throws every time.
Steps to reproduce
Here is my code: _mqttBroker = new Server(); final List<? extends InterceptHandler> userHandlers = Arrays.asList(new PublisherListener()); _mqttBroker.startServer(server_config, userHandlers); String clientID = "a2bae31a-6c4f-4076-ae66-5aadf3668b0a"; MqttFixedHeader mqttFixedHeader = new MqttFixedHeader(MqttMessageType.PUBLISH, false, MqttQoS.AT_LEAST_ONCE, false, 0); MqttPublishVariableHeader headerTopic = new MqttPublishVariableHeader(topic, 0); ByteBuf anypayload = Unpooled.wrappedBuffer(data.getBytes()); MqttPublishMessage msg = new MqttPublishMessage(mqttFixedHeader, headerTopic, anypayload); _mqttBroker.internalPublish(msg, clientID); InterceptPublishMessage message = new InterceptPublishMessage(msg, clientID, clientID);
new PublisherListener().onPublish(message);
public void onPublish(InterceptPublishMessage message) { System.out.println("moquette mqtt broker message intercepted, topic: " + message.getTopicName()
Moquette MQTT version
moquette-broker-0.15
JVM version (e.g.
java -version
)1.8.0_312
OS version (e.g.
uname -a
)Ubuntu 20