[jboss-jira] [JBoss JIRA] (JGRP-1918) ConcurrentModificationException in Locking notification

Paul Illingworth (JIRA) issues at jboss.org
Fri Feb 27 11:08:49 EST 2015


Paul Illingworth created JGRP-1918:
--------------------------------------

             Summary: ConcurrentModificationException in Locking notification
                 Key: JGRP-1918
                 URL: https://issues.jboss.org/browse/JGRP-1918
             Project: JGroups
          Issue Type: Bug
    Affects Versions: 3.6.2
         Environment: JUnit text running in Eclipse on Windows
            Reporter: Paul Illingworth
            Assignee: Bela Ban


I have code which unregisters a lock listener whilst a lock notification event is being fired leading to 

java.util.ConcurrentModificationException
	at java.util.HashMap$HashIterator.nextEntry(HashMap.java:926)
	at java.util.HashMap$KeyIterator.next(HashMap.java:960)
	at org.jgroups.protocols.Locking.notifyUnlocked(Locking.java:581)
	at org.jgroups.protocols.Locking$ServerLock.setOwner(Locking.java:767)
	at org.jgroups.protocols.Locking$ServerLock.handleRequest(Locking.java:655)
	at org.jgroups.protocols.Locking.handleLockRequest(Locking.java:393)
	at org.jgroups.protocols.Locking.up(Locking.java:226)
	at org.jgroups.stack.Protocol.up(Protocol.java:412)
	at org.jgroups.protocols.FORK.up(FORK.java:139)
	at org.jgroups.protocols.FRAG2.up(FRAG2.java:182)
	at org.jgroups.protocols.FlowControl.up(FlowControl.java:447)
	at org.jgroups.protocols.FlowControl.up(FlowControl.java:447)
	at org.jgroups.stack.Protocol.up(Protocol.java:420)
	at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:294)
	at org.jgroups.protocols.UNICAST3.deliverBatch(UNICAST3.java:1087)
	at org.jgroups.protocols.UNICAST3.removeAndDeliver(UNICAST3.java:886)
	at org.jgroups.protocols.UNICAST3.handleDataReceivedFromSelf(UNICAST3.java:821)
	at org.jgroups.protocols.UNICAST3.up(UNICAST3.java:424)
	at org.jgroups.protocols.pbcast.NAKACK2.up(NAKACK2.java:652)
	at org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:155)
	at org.jgroups.protocols.FD.up(FD.java:253)
	at org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:297)
	at org.jgroups.protocols.MERGE3.up(MERGE3.java:288)
	at org.jgroups.protocols.Discovery.up(Discovery.java:291)
	at org.jgroups.protocols.TP$ProtocolAdapter.up(TP.java:2842)
	at org.jgroups.protocols.TP.passMessageUp(TP.java:1577)
	at org.jgroups.protocols.TP$3.run(TP.java:1511)
	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:724)

The org.jgroups.protocols.Locking#lock_listeners is simple a HashSet which gets iterated over, This needs to be synchronised is some way.



--
This message was sent by Atlassian JIRA
(v6.3.11#6341)


More information about the jboss-jira mailing list