[ https://issues.apache.org/jira/browse/AMQ-5668?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14365057#comment-14365057 ]
Torsten Mielke commented on AMQ-5668: ------------------------------------- Possible workarounds: - concurrentStoreAndDispatchTopics="false" as recommended in AMQ-2864, - use a different persistence store, e.g. LevelDB > NPE in kahadb with concurrentStoreAndDispatchTopics when sending MQTT msgs > with different QoS > --------------------------------------------------------------------------------------------- > > Key: AMQ-5668 > URL: https://issues.apache.org/jira/browse/AMQ-5668 > Project: ActiveMQ > Issue Type: Bug > Components: Broker, KahaDB, MQTT > Affects Versions: 5.11.1 > Environment: MQTT, KahaDB > Reporter: Torsten Mielke > Labels: broker, kahadb, mqtt > > Running KahaDB with concurrentStoreAndDispatchTopics="true" and sending 3 > MQTT messages using different QoS values raises > {code} > 2015-03-17 13:27:48,866 WARN ActiveMQ NIO Worker 2 - Failed to send MQTT > Publish: > java.lang.NullPointerException > at > org.apache.activemq.broker.region.cursors.AbstractStoreCursor.setLastCachedId(AbstractStoreCursor.java:319) > at > org.apache.activemq.broker.region.cursors.AbstractStoreCursor.trackLastCached(AbstractStoreCursor.java:280) > at > org.apache.activemq.broker.region.cursors.AbstractStoreCursor.addMessageLast(AbstractStoreCursor.java:213) > at > org.apache.activemq.broker.region.cursors.TopicStorePrefetch.addMessageLast(TopicStorePrefetch.java:74) > at > org.apache.activemq.broker.region.cursors.StoreDurableSubscriberCursor.addMessageLast(StoreDurableSubscriberCursor.java:198) > at > org.apache.activemq.broker.region.PrefetchSubscription.add(PrefetchSubscription.java:159) > at > org.apache.activemq.broker.region.DurableTopicSubscription.add(DurableTopicSubscription.java:274) > at > org.apache.activemq.broker.region.policy.SimpleDispatchPolicy.dispatch(SimpleDispatchPolicy.java:48) > at org.apache.activemq.broker.region.Topic.dispatch(Topic.java:717) > at org.apache.activemq.broker.region.Topic.doMessageSend(Topic.java:510) > at org.apache.activemq.broker.region.Topic.send(Topic.java:441) > at > org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.java:419) > at > org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:468) > at > org.apache.activemq.broker.jmx.ManagedRegionBroker.send(ManagedRegionBroker.java:297) > at org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:152) > at > org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:96) > at > org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:307) > at > org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java:157) > at > org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:541) > at > org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:768) > at > org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:334) > at > org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:188) > at > org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:45) > at > org.apache.activemq.transport.mqtt.MQTTInactivityMonitor.onCommand(MQTTInactivityMonitor.java:147) > at > org.apache.activemq.transport.mqtt.MQTTTransportFilter.sendToActiveMQ(MQTTTransportFilter.java:106) > at > org.apache.activemq.transport.mqtt.MQTTProtocolConverter.sendToActiveMQ(MQTTProtocolConverter.java:173) > at > org.apache.activemq.transport.mqtt.MQTTProtocolConverter.onMQTTPublish(MQTTProtocolConverter.java:445) > at > org.apache.activemq.transport.mqtt.MQTTProtocolConverter.onMQTTCommand(MQTTProtocolConverter.java:210) > at > org.apache.activemq.transport.mqtt.MQTTTransportFilter.onCommand(MQTTTransportFilter.java:94) > at > org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83) > at > org.apache.activemq.transport.mqtt.MQTTCodec$1.onFrame(MQTTCodec.java:54) > at > org.apache.activemq.transport.mqtt.MQTTCodec.processCommand(MQTTCodec.java:79) > at > org.apache.activemq.transport.mqtt.MQTTCodec.access$400(MQTTCodec.java:26) > at > org.apache.activemq.transport.mqtt.MQTTCodec$4.parse(MQTTCodec.java:194) > at > org.apache.activemq.transport.mqtt.MQTTCodec$3.parse(MQTTCodec.java:160) > at > org.apache.activemq.transport.mqtt.MQTTCodec$2.parse(MQTTCodec.java:123) > at org.apache.activemq.transport.mqtt.MQTTCodec.parse(MQTTCodec.java:65) > at > org.apache.activemq.transport.mqtt.MQTTNIOTransport.serviceRead(MQTTNIOTransport.java:105) > at > org.apache.activemq.transport.mqtt.MQTTNIOTransport.access$000(MQTTNIOTransport.java:43) > at > org.apache.activemq.transport.mqtt.MQTTNIOTransport$1.onSelect(MQTTNIOTransport.java:66) > at > org.apache.activemq.transport.nio.SelectorSelection.onSelect(SelectorSelection.java:97) > at > org.apache.activemq.transport.nio.SelectorWorker$1.run(SelectorWorker.java:119) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:744) > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)