Hi,
I'm facing an issue when switching a topic subscription from the full path
to the "wildcard char" one (with '#') and viceversa.
I'm using the last 2.1.0 version (downloaded from activemq.apache.org). Here
my test:

1) connect to Artemis
2) subscribe a topic by using full path, eg.
"/prj/plantid/111111/gwid/22222/connection_state"
3) disconnect and reconnect to Artemis
4) subscribe to a topic by using the wildcard char '#', eg.
"/prj/plantid/111111/gwid/22222/#"
5) disconnect and reconnect to Artemis
6) as in step 2, subscribe a topic by using full path, eg.
"/prj/plantid/111111/gwid/22222/connection_state" --> Artemis doesn't let
subscribe and close my client connection
*NOTE:* it seems that the problem affects only the LWT topic (in my example
"/prj/plantid/111111/gwid/22222/connection_state" is an lwt topic).

By setting artemis.log to trace I see the following error:

08:38:44,122 DEBUG [io.netty.handler.ssl.SslHandler] [id: 0x41543b32,
L:/172.16.2.5:8884 - R:/54.76.160.93:58198] HANDSHAKEN:
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
08:38:44,123 DEBUG [org.apache.activemq.artemis.core.protocol.mqtt] SESSION
CREATED: 993619fb-372e-47f0-889e-ab1394e9b9e7
08:38:44,125 DEBUG [org.apache.activemq.artemis.core.protocol.mqtt] Error
processing Control Packet, Disconnecting Client:
java.lang.NullPointerException
        at
org.apache.activemq.artemis.core.postoffice.impl.WildcardAddressManager.addBinding(WildcardAddressManager.java:95)
[artemis-server-2.1.0.jar:2.1.0]
        at
org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.addBinding(PostOfficeImpl.java:529)
[artemis-server-2.1.0.jar:2.1.0]
        at
org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.createQueue(ActiveMQServerImpl.java:2582)
[artemis-server-2.1.0.jar:2.1.0]
        at
org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.createQueue(ActiveMQServerImpl.java:1588)
[artemis-server-2.1.0.jar:2.1.0]
        at
org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.createQueue(ServerSessionImpl.java:558)
[artemis-server-2.1.0.jar:2.1.0]
        at
org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.createQueue(ServerSessionImpl.java:597)
[artemis-server-2.1.0.jar:2.1.0]
        at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTSubscriptionManager.findOrCreateQueue(MQTTSubscriptionManager.java:121)
[artemis-mqtt-protocol-2.1.0.jar:]
        at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTSubscriptionManager.createQueueForSubscription(MQTTSubscriptionManager.java:113)
[artemis-mqtt-protocol-2.1.0.jar:]
        at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTSubscriptionManager.addSubscription(MQTTSubscriptionManager.java:172)
[artemis-mqtt-protocol-2.1.0.jar:]
        at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTSubscriptionManager.addSubscriptions(MQTTSubscriptionManager.java:222)
[artemis-mqtt-protocol-2.1.0.jar:]
        at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTProtocolHandler.handleSubscribe(MQTTProtocolHandler.java:250)
[artemis-mqtt-protocol-2.1.0.jar:]
        at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTProtocolHandler.channelRead(MQTTProtocolHandler.java:132)
[artemis-mqtt-protocol-2.1.0.jar:]
        at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
        at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
        at
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
        at
io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
        at
io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
        at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
        at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
        at
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
        at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1240)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
        at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1041)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
        at
io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:411)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
        at
io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:248)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
        at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
        at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
        at
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
        at
io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
        at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
        at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
        at
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
        at
io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:1017)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
        at
io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:394)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
        at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:299)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
        at
io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
[netty-all-4.1.9.Final.jar:4.1.9.Final]
        at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_111]

08:38:44,128 DEBUG
[org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl] PostOffice
notification / BINDING_REMOVED: Cannot find queue info for queue " +
clusterName
08:38:44,129 DEBUG
[org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl] Couldn't
find any bindings for address=activemq.notifications on
message=CoreMessage[messageID=727,durable=true,userID=null,priority=0,
timestamp=0,expiration=Mon Jun 05 08:38:44 UTC 2017, durable=true,
address=activemq.notifications,properties=TypedProperties[_AMQ_RoutingName=franzsub..cro.plantid.1101937.gwid.49180.connection_state,_AMQ_Distance=0,_AMQ_Address=.cro.plantid.1101937.gwid.49180.connection_state,_AMQ_NotifType=BINDING_REMOVED,_AMQ_Binding_ID=723,_AMQ_FilterString=NOT
((AMQAddress = 'activemq.management') OR (AMQAddress =
'activemq.notifications')),_AMQ_NotifTimestamp=1496047124128,_AMQ_ClusterName=franzsub..cro.plantid.1101937.gwid.49180.connection_statecdf4c005-4449-11e7-b990-069133a4f5cf]]@23377517
08:38:44,129 DEBUG
[org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl] Message
CoreMessage[messageID=727,durable=true,userID=null,priority=0,
timestamp=0,expiration=Mon Jun 05 08:38:44 UTC 2017, durable=true,
address=activemq.notifications,properties=TypedProperties[_AMQ_RoutingName=franzsub..cro.plantid.1101937.gwid.49180.connection_state,_AMQ_Distance=0,_AMQ_Address=.cro.plantid.1101937.gwid.49180.connection_state,_AMQ_NotifType=BINDING_REMOVED,_AMQ_Binding_ID=723,_AMQ_FilterString=NOT
((AMQAddress = 'activemq.management') OR (AMQAddress =
'activemq.notifications')),_AMQ_NotifTimestamp=1496047124128,_AMQ_ClusterName=franzsub..cro.plantid.1101937.gwid.49180.connection_statecdf4c005-4449-11e7-b990-069133a4f5cf]]@23377517
is not going anywhere as it didn't have a binding on
address:activemq.notifications
08:38:44,129 DEBUG
[org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl]
RemotingServiceImpl::removing connection ID 1746351574


Any idea?
Thanks to anyone for the help.

Francesco



--
View this message in context: 
http://activemq.2283324.n4.nabble.com/ARTEMIS-java-lang-NullPointerException-switching-subscription-with-tp4726641.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to