Thanks! i modified the org.apache.activemq.store.kahadaptor.KahaTopicReferenceStore removeSubscriberMessageContainer(String clientId, String subscriptionName) throws IOException to protected void removeSubscriberMessageContainer(String clientId, String subscriptionName) throws IOException { String subscriberKey = getSubscriptionKey(clientId, subscriptionName); String containerName = getSubscriptionContainerName(subscriberKey); subscriberContainer.remove(subscriberKey); TopicSubContainer container = subscriberMessages.remove(subscriberKey); if (container != null){ for (Iterator i = container.iterator(); i.hasNext();) { ConsumerMessageRef ref = (ConsumerMessageRef) i.next(); if (ref != null) { TopicSubAck tsa = ackContainer.get(ref.getAckEntry()); if (tsa != null) { if (tsa.decrementCount() <= 0) { ackContainer.remove(ref.getAckEntry()); messageContainer.remove(tsa.getMessageEntry()); } else { ackContainer.update(ref.getAckEntry(), tsa); } } } } } store.deleteMapContainer(containerName); }
it seems work for me! And i also reported this: https://issues.apache.org/activemq/browse/AMQ-1533 rajdavies wrote: > > Hi Bill, > > this is obviously a bug - could raise an issue on > http://issues.apache.org/activemq/browse/AMQ > > thanks, > > Rob > > On Jan 2, 2008, at 2:27 AM, bill richard wrote: > >> >> can anyone give me some hint?why this exception was thrown? >> >> >> bill richard wrote: >>> >>> [EMAIL PROTECTED] msgclient]$ javax.jms.JMSException: >>> java.lang.NullPointerException >>> at >>> org >>> .apache >>> .activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java: >>> 49) >>> at >>> org >>> .apache >>> .activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java: >>> 1178) >>> at >>> org >>> .apache >>> .activemq.ActiveMQConnection.unsubscribe(ActiveMQConnection.java: >>> 1921) >>> at >>> org >>> .apache.activemq.ActiveMQSession.unsubscribe(ActiveMQSession.java: >>> 1417) >>> at >>> org >>> .apache >>> .activemq >>> .ActiveMQTopicSession.unsubscribe(ActiveMQTopicSession.java:380) >>> at >>> org >>> .gos.common.msg.controller.MessageConsumerWrapper.unSubScribe(Unknown >>> Source) >>> at org.gos.system.msg.helpper.UnsubMessage.unSubscribe(Unknown >>> Source) >>> at org.gos.system.msg.helpper.UnsubMessage.main(Unknown >>> Source) >>> Caused by: java.lang.NullPointerException >>> at >>> org >>> .apache >>> .activemq >>> .store >>> .kahadaptor >>> .KahaTopicReferenceStore >>> .removeSubscriberMessageContainer(KahaTopicReferenceStore.java:304) >>> at >>> org >>> .apache >>> .activemq >>> .store >>> .kahadaptor >>> .KahaTopicReferenceStore >>> .deleteSubscription(KahaTopicReferenceStore.java:217) >>> at >>> org >>> .apache >>> .activemq >>> .store >>> .amq >>> .AMQTopicMessageStore.deleteSubscription(AMQTopicMessageStore.java: >>> 178) >>> at >>> org >>> .apache.activemq.broker.region.Topic.deleteSubscription(Topic.java: >>> 179) >>> at >>> org >>> .apache >>> .activemq >>> .broker.region.TopicRegion.removeSubscription(TopicRegion.java:137) >>> at >>> org >>> .apache >>> .activemq >>> .broker.region.RegionBroker.removeSubscription(RegionBroker.java:372) >>> at >>> org >>> .apache >>> .activemq.broker.BrokerFilter.removeSubscription(BrokerFilter.java: >>> 97) >>> at >>> org >>> .apache >>> .activemq.broker.BrokerFilter.removeSubscription(BrokerFilter.java: >>> 97) >>> at >>> org >>> .apache >>> .activemq.broker.BrokerFilter.removeSubscription(BrokerFilter.java: >>> 97) >>> at >>> org >>> .apache >>> .activemq >>> .broker >>> .MutableBrokerFilter.removeSubscription(MutableBrokerFilter.java:107) >>> at >>> org >>> .apache >>> .activemq >>> .broker >>> .TransportConnection >>> .processRemoveSubscription(TransportConnection.java:315) >>> at >>> org >>> .apache >>> .activemq >>> .command.RemoveSubscriptionInfo.visit(RemoveSubscriptionInfo.java:83) >>> at >>> org >>> .apache >>> .activemq >>> .broker.TransportConnection.service(TransportConnection.java:281) >>> at >>> org.apache.activemq.broker.TransportConnection >>> $1.onCommand(TransportConnection.java:178) >>> at >>> org >>> .apache >>> .activemq.transport.TransportFilter.onCommand(TransportFilter.java: >>> 67) >>> at >>> org >>> .apache >>> .activemq >>> .transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java: >>> 134) >>> at >>> org >>> .apache >>> .activemq >>> .transport.InactivityMonitor.onCommand(InactivityMonitor.java:138) >>> at >>> org >>> .apache >>> .activemq >>> .transport.TransportSupport.doConsume(TransportSupport.java:83) >>> at >>> org >>> .apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java: >>> 185) >>> at >>> org >>> .apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java: >>> 172) >>> at java.lang.Thread.run(Thread.java:595) >>> javax.jms.InvalidDestinationException: No durable subscription >>> exists for: >>> 10.61.0.200:3808011111messageproxy-hpcg.MsgClientTopicTest >>> at >>> org >>> .apache >>> .activemq >>> .broker.region.TopicRegion.removeSubscription(TopicRegion.java:128) >>> at >>> org >>> .apache >>> .activemq >>> .broker.region.RegionBroker.removeSubscription(RegionBroker.java:372) >>> at >>> org >>> .apache >>> .activemq.broker.BrokerFilter.removeSubscription(BrokerFilter.java: >>> 97) >>> at >>> org >>> .apache >>> .activemq.broker.BrokerFilter.removeSubscription(BrokerFilter.java: >>> 97) >>> at >>> org >>> .apache >>> .activemq.broker.BrokerFilter.removeSubscription(BrokerFilter.java: >>> 97) >>> at >>> org >>> .apache >>> .activemq >>> .broker >>> .MutableBrokerFilter.removeSubscription(MutableBrokerFilter.java:107) >>> at >>> org >>> .apache >>> .activemq >>> .broker >>> .TransportConnection >>> .processRemoveSubscription(TransportConnection.java:315) >>> at >>> org >>> .apache >>> .activemq >>> .command.RemoveSubscriptionInfo.visit(RemoveSubscriptionInfo.java:83) >>> at >>> org >>> .apache >>> .activemq >>> .broker.TransportConnection.service(TransportConnection.java:281) >>> at >>> org.apache.activemq.broker.TransportConnection >>> $1.onCommand(TransportConnection.java:178) >>> at >>> org >>> .apache >>> .activemq.transport.TransportFilter.onCommand(TransportFilter.java: >>> 67) >>> at >>> org >>> .apache >>> .activemq >>> .transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java: >>> 134) >>> at >>> org >>> .apache >>> .activemq >>> .transport.InactivityMonitor.onCommand(InactivityMonitor.java:138) >>> at >>> org >>> .apache >>> .activemq >>> .transport.TransportSupport.doConsume(TransportSupport.java:83) >>> at >>> org >>> .apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java: >>> 185) >>> at >>> org >>> .apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java: >>> 172) >>> at java.lang.Thread.run(Thread.java:595) >>> >>> >> >> -- >> View this message in context: >> http://www.nabble.com/unsubscribe-unsuccess%21%21-tp14546901s2354p14572729.html >> Sent from the ActiveMQ - User mailing list archive at Nabble.com. >> > > > -- View this message in context: http://www.nabble.com/unsubscribe-unsuccess%21%21-tp14546901s2354p14574838.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.