[
https://jira.jboss.org/jira/browse/JBMESSAGING-1429?page=com.atlassian.ji...
]
Clebert Suconic commented on JBMESSAGING-1429:
----------------------------------------------
The current fix caused a regression on DistributedTopicTest::testFloodSubscriptions....
If we used the ConcurrentHashSet as proposed by Overlord the test didn't fail.
I have committed removed the synchronized block and used the ConcurrentHashSet for now, so
I could proceed with my tests.
I will leave the decision on keeping the fix or finding a new one for Tim
ConcurrentModificationException is thrown from JBM
MessagingQueue.java
----------------------------------------------------------------------
Key: JBMESSAGING-1429
URL:
https://jira.jboss.org/jira/browse/JBMESSAGING-1429
Project: JBoss Messaging
Issue Type: Bug
Affects Versions: 1.4.0.SP3.CP02
Environment: Sybase ASE 15.02, JDBC Driver jTDS 1.2.1, JBoss-EAP-4.3_CP1, JDK
-1.5.0_10
Reporter: Tyronne Wickramarathne
Assignee: Tim Fox
Fix For: 1.4.0.SP3.CP05, 1.4.1.GA
2008-10-08 17:57:44,955 [WorkerThread#18[10.0.15.102:49566]] ERROR
org.jboss.messaging.util.ExceptionUtil -
ConsumerEndpoint[g7-swt4i2mf-1-8mfqh2mf-h5u36p-x2f0a] close
[i7-rwu4i2mf-1-8mfqh2mf-h5u36p-x2f0a]
java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:841)
at java.util.HashMap$KeyIterator.next(HashMap.java:877)
I couldn't reproduce this problem locally. However, I have noted the code segment
which leads to this problem. This exception is thrown when unregisterSucker() or
registerSucker() is called by the time the HashSet containing suckers are iterated.
Replacing the HashSet with ConcurrentHashMap is the easiest fix it seems though the other
approach is to use synchronized(lock) in the informSuckers().
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira