Bug 50600 - ConcurrentModificationException removing WAR via FarmWarDeployer
Summary: ConcurrentModificationException removing WAR via FarmWarDeployer
Status: RESOLVED FIXED
Alias: None
Product: Tomcat 6
Classification: Unclassified
Component: Cluster (show other bugs)
Version: 6.0.29
Hardware: All All
: P2 normal (vote)
Target Milestone: default
Assignee: Tomcat Developers Mailing List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-01-17 06:20 UTC by Mark Thomas
Modified: 2011-01-18 11:55 UTC (History)
0 users



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mark Thomas 2011-01-17 06:20:11 UTC
The following exception was reported via $work

WARNING: Exception processing cluster org.apache.catalina.ha.tcp.SimpleTcpCluster@68e4e358 background process
java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:810)
at java.util.HashMap$EntryIterator.next(HashMap.java:851)
at java.util.HashMap$EntryIterator.next(HashMap.java:849)
at org.apache.catalina.ha.deploy.WarWatcher.check(WarWatcher.java:87)
at org.apache.catalina.ha.deploy.FarmWarDeployer.backgroundProcess(FarmWarDeployer.java:609)
at org.apache.catalina.ha.tcp.SimpleTcpCluster.backgroundProcess(SimpleTcpCluster.java:596)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1302)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590)
at java.lang.Thread.run(Thread.java:636)

The root cause is removing the entry directly from the Map rather than from the iterator. I have a patch that I'll apply shortly.
Comment 1 Mark Thomas 2011-01-17 06:28:46 UTC
Fixed in 7.0.x and will be included in 7.0.7 onwards - r1059881

Proposed for 6.0.x
Comment 2 Mark Thomas 2011-01-18 11:55:38 UTC
Fixed in 6.0.x and will be included in 6.0.31 onwards