[
https://issues.apache.org/jira/browse/AMQ-8012?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17164575#comment-17164575
]
Christopher L. Shannon edited comment on AMQ-8012 at 7/24/20, 6:19 PM:
-----------------------------------------------------------------------
[~mattrpav] - Ok this should be good now. I merged in your fix (thanks btw) and
then fixed the thread safety by locking on the synchronized map which is
necessary on iteration (which occurs when copying to a new set) plus fixed a
couple other methods.
was (Author: christopher.l.shannon):
Ok this should be good now. I merged in your fix (thanks btw) and then fixed
the thread safety by locking on the synchronized map which is necessary on
iteration (which occurs when copying to a new set) plus fixed a couple other
methods.
> ConcurrentModificationException in SubQueueSelectorCacheBroker
> --------------------------------------------------------------
>
> Key: AMQ-8012
> URL: https://issues.apache.org/jira/browse/AMQ-8012
> Project: ActiveMQ
> Issue Type: New Feature
> Affects Versions: 5.16.0, 5.15.13
> Reporter: Matt Pavlovich
> Assignee: Matt Pavlovich
> Priority: Major
> Fix For: 5.17.0, 5.16.1
>
> Time Spent: 50m
> Remaining Estimate: 0h
>
> Standard info log output:
> {noformat}
> 2020-07-16 01:34:57,349 | WARN | Async error occurred:
> java.util.ConcurrentModificationException |
> org.apache.activemq.broker.TransportConnection.Service | ActiveMQ Transport:
> tcp:///x.x.x.x:yyyyyy@61616
> {noformat}
> Debug log output:
> {noformat}
> java.util.ConcurrentModificationException
> at
> java.util.HashMap$HashIterator.nextNode(HashMap.java:1442)[:1.8.0_161]
> at java.util.HashMap$KeyIterator.next(HashMap.java:1466)[:1.8.0_161]
> at
> org.apache.activemq.broker.region.virtual.SelectorAwareVirtualTopicInterceptor.tryMatchingCachedSubs(SelectorAwareVirtualTopicInterceptor.java:82)[activemq-broker-5.15.3.jar:5.15.3]
> at
> org.apache.activemq.broker.region.virtual.SelectorAwareVirtualTopicInterceptor.shouldDispatch(SelectorAwareVirtualTopicInterceptor.java:68)[activemq-broker-5.15.3.jar:5.15.3]
> at
> org.apache.activemq.broker.region.virtual.VirtualTopicInterceptor.send(VirtualTopicInterceptor.java:114)[activemq-broker-5.15.3.jar:5.15.3]
> at
> org.apache.activemq.broker.region.virtual.VirtualTopicInterceptor.send(VirtualTopicInterceptor.java:67)[activemq-broker-5.15.3.jar:5.15.3]
> at
> org.apache.activemq.broker.region.DestinationFilter.send(DestinationFilter.java:132)[activemq-broker-5.15.3.jar:5.15.3]
> at
> org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.java:505)[activemq-broker-5.15.3.jar:5.15.3]
> at
> org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:459)[activemq-broker-5.15.3.jar:5.15.3]
> at
> org.apache.activemq.broker.jmx.ManagedRegionBroker.send(ManagedRegionBroker.java:293)[activemq-broker-5.15.3.jar:5.15.3]
> at
> org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:154)[activemq-broker-5.15.3.jar:5.15.3]
> at
> org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:96)[activemq-broker-5.15.3.jar:5.15.3]
> at
> org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:293)[activemq-broker-5.15.3.jar:5.15.3]
> at
> org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:154)[activemq-broker-5.15.3.jar:5.15.3]
> at
> org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:154)[activemq-broker-5.15.3.jar:5.15.3]
> at
> org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:154)[activemq-broker-5.15.3.jar:5.15.3]
> at
> org.apache.activemq.security.AuthorizationBroker.send(AuthorizationBroker.java:226)[activemq-broker-5.15.3.jar:5.15.3]
> at
> org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:154)[activemq-broker-5.15.3.jar:5.15.3]
> at
> org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:572)[activemq-broker-5.15.3.jar:5.15.3]
> at
> org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:768)[activemq-client-5.15.3.jar:5.15.3]
> at
> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:330)[activemq-broker-5.15.3.jar:5.15.3]
> at
> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:194)[activemq-broker-5.15.3.jar:5.15.3]
> at
> org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)[activemq-client-5.15.3.jar:5.15.3]
> at
> org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:125)[activemq-client-5.15.3.jar:5.15.3]
> at
> org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:301)[activemq-client-5.15.3.jar:5.15.3]
> at
> org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)[activemq-client-5.15.3.jar:5.15.3]
> at
> org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:233)[activemq-client-5.15.3.jar:5.15.3]
> at
> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:215)[activemq-client-5.15.3.jar:5.15.3]
> at java.lang.Thread.run(Thread.java:748)[:1.8.0_161]
> {noformat}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)