You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Rob Davies (JIRA)" <ji...@apache.org> on 2008/02/18 13:52:15 UTC

[jira] Resolved: (AMQ-1583) Creating a durable subscriber throws ConcurrentModificationException

     [ https://issues.apache.org/activemq/browse/AMQ-1583?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Rob Davies resolved AMQ-1583.
-----------------------------

    Fix Version/s: 5.1.0
       Resolution: Fixed

Fixed by SVN revision 628708

> Creating a durable subscriber throws ConcurrentModificationException
> --------------------------------------------------------------------
>
>                 Key: AMQ-1583
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1583
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Message Store
>    Affects Versions: 5.1.0
>            Reporter: Rainer Klute
>            Assignee: Rob Davies
>             Fix For: 5.1.0
>
>
> My JMS application uses a single topic and few hundred durable subscribers. While some of the consumers are already receiving messages, others are created. During the creation of one of the durable subscribers, a java.util.ConcurrentModificationException in the size() method of org.apache.activemq.broker.region.cursors.StoreDurableSubscriberCursor occured. Here's the stack trace:
> javax.jms.JMSException: java.util.ConcurrentModificationException
>         at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:49)
>         at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1181)
>         at org.apache.activemq.ActiveMQSession.syncSendPacket(ActiveMQSession.java:1749)
>         at org.apache.activemq.ActiveMQMessageConsumer.<init>(ActiveMQMessageConsumer.java:215)
>         at org.apache.activemq.ActiveMQTopicSubscriber.<init>(ActiveMQTopicSubscriber.java:117)
>         at org.apache.activemq.ActiveMQSession.createDurableSubscriber(ActiveMQSession.java:1164)
>         at de.dpwn.bde.bms.optima.service.eventreceiver.DeviceListenerThread.<init>(DeviceListenerThread.java:98)
>         at de.dpwn.bde.bms.optima.service.eventreceiver.EventReceiverService.addDeviceListener(EventReceiverService.java:184)
>         at de.dpwn.bde.bms.optima.device.DeviceFactory.getBinDevice(DeviceFactory.java:463)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at de.dpwn.bde.bms.optima.service.eventreceiver.EventCaller.call(EventCaller.java:124)
>         at de.dpwn.bde.bms.optima.service.eventreceiver.ConfigListenerThread.run(ConfigListenerThread.java:126)
> Caused by: java.util.ConcurrentModificationException
>         at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:761)
>         at java.util.LinkedList$ListItr.next(LinkedList.java:696)
>         at org.apache.activemq.broker.region.cursors.StoreDurableSubscriberCursor.size(StoreDurableSubscriberCursor.java:236)
>         at org.apache.activemq.broker.region.PrefetchSubscription.getPendingQueueSize(PrefetchSubscription.java:392)
>         at org.apache.activemq.broker.region.DurableTopicSubscription.getPendingQueueSize(DurableTopicSubscription.java:207)
>         at org.apache.activemq.broker.region.DurableTopicSubscription.toString(DurableTopicSubscription.java:229)
>         at java.lang.String.valueOf(String.java:2827)
>         at java.lang.StringBuilder.append(StringBuilder.java:115)
>         at org.apache.activemq.broker.region.DurableTopicSubscription.activate(DurableTopicSubscription.java:97)
>         at org.apache.activemq.broker.region.TopicRegion.addConsumer(TopicRegion.java:103)
>         at org.apache.activemq.broker.region.RegionBroker.addConsumer(RegionBroker.java:372)
>         at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:85)
>         at org.apache.activemq.advisory.AdvisoryBroker.addConsumer(AdvisoryBroker.java:81)
>         at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:85)
>         at org.apache.activemq.broker.MutableBrokerFilter.addConsumer(MutableBrokerFilter.java:95)
>         at org.apache.activemq.broker.TransportConnection.processAddConsumer(TransportConnection.java:525)
>         at org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:334)
>         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.ResponseCorrelator.onCommand(ResponseCorrelator.java:100)
>         at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
>         at org.apache.activemq.transport.vm.VMTransport.iterate(VMTransport.java:200)
>         at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:118)
>         at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:42)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>         at java.lang.Thread.run(Thread.java:619)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.