[mule-user] Threading & Pooling profile setting cause java.util.ConcurrentModificationException?

2 views
Skip to first unread message

Ken Chen

unread,
Jan 31, 2008, 10:08:54 PM1/31/08
to us...@mule.codehaus.org

When I set the below setting in mule and try to start the mule server,
ConcurrentModificationException occurs. If I remove those setting and place
synchronous="false" attribute to mule-environment-properties element, then
it's fine.

<mule-environment-properties>
<threading-profile id="receiver" maxThreadsActive="1"
maxThreadsIdle="1" poolExhaustedAction="RUN"/>
<pooling-profile maxActive="2" maxIdle="2"
initialisationPolicy="INITIALISE_FIRST" exhaustedAction="WAIT"
maxWait="-1"/>
</mule-environment-properties>


Exception occurs:
2008-02-01 11:06:22,436 [main] [org.mule.MuleServer] FATAL -
********************************************************************************
Message : MuleManager Failed to initialise
Type : org.mule.config.ConfigurationException
Code : 13040
JavaDoc :
http://mule.codehaus.org/docs/apidocs/org/mule/config/ConfigurationException.html
********************************************************************************
Exception stack is:
1. null (java.util.ConcurrentModificationException)
java.util.HashMap$HashIterator:782 (null)
2. MuleManager Failed to initialise (org.mule.config.ConfigurationException)
org.mule.config.builders.MuleXmlConfigurationBuilder:209
(http://mule.codehaus.org/docs/apidocs/org/mule/config/ConfigurationException.html)
********************************************************************************
Root Exception stack trace:
java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:782)
at java.util.HashMap$ValueIterator.next(HashMap.java:812)
at org.mule.MuleManager.initialiseConnectors(MuleManager.java:775)
at org.mule.MuleManager.initialise(MuleManager.java:652)
at org.mule.MuleManager.start(MuleManager.java:721)
at
org.mule.config.builders.MuleXmlConfigurationBuilder.configure(MuleXmlConfigurationBuilder.java:207)
at
com.core.cif.mule.config.CoreConfigurationBuilder.configure(CoreConfigurationBuilder.java:58)
at
org.mule.config.builders.MuleXmlConfigurationBuilder.configure(MuleXmlConfigurationBuilder.java:194)
at org.mule.MuleServer.initialize(MuleServer.java:229)
at org.mule.MuleServer.run(MuleServer.java:161)
at org.mule.MuleServer.start(MuleServer.java:150)
at org.mule.MuleServer.main(MuleServer.java:123)
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:324)
at org.mule.tools.launcher.Launcher.run(Launcher.java:365)
at org.mule.tools.launcher.Launcher.main(Launcher.java:140)
--
View this message in context: http://www.nabble.com/Threading---Pooling-profile-setting-cause-java.util.ConcurrentModificationException--tp15219843p15219843.html
Sent from the Mule - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Andrew Perepelytsya

unread,
Feb 4, 2008, 9:16:22 AM2/4/08
to us...@mule.codehaus.org
Ken, sorry for the delay, could you please tell which Mule version you are running?

Andrew

Ken Chen

unread,
Feb 4, 2008, 8:26:36 PM2/4/08
to us...@mule.codehaus.org


That is alright. I am using Mule 1.26.

I found some threads here talking about the similar problem too. In the
below thread:
http://www.nabble.com/JMSException-under-heavy-load-...-td4899934.html#a4995993

"kenneth.westelinck@... wrote:
> Root Exception stack trace:
> edu.emory.mathcs.backport.java.util.concurrent.RejectedExecutionException
> at
> org.mule.util.concurrent.WaitPolicy.rejectedExecution(WaitPolicy.java:64)

As Andrew has pointed out this happens when a thread has waited too long
for its turn and has been rejected from a full thread queue (the exception
message needs to be improved, admittedly). Your queue is very contended
since it only has 2 maxActive threads which (I assume) leads to an
ever-increasing work queue with the effect that sooner or later you end up
with rejected threads. The only (easy) ways out of this are to increase
the number of concurrent workers or increase the wait time. "

Hence, I increase the maxActive in pooling-profile. And it works.

Sorry that I have not posted my finding back because I am quite busy these
days and not read threads here completely.

I wonder whether the new release of the Mule still have the same problem?
I noticed that Ross Mason has already announced that in 1.3-rc2 has
addressed this issue.
http://www.nabble.com/Mule-1.3-rc2-released%21-tp3882161p3882161.html

I think our company should migrate the code to mule latest version?
--
View this message in context: http://www.nabble.com/Threading---Pooling-profile-setting-cause-java.util.ConcurrentModificationException--tp15219843p15281725.html


Sent from the Mule - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email


Reply all
Reply to author
Forward
0 new messages