ConcurrentModificationException thrown when trying out caching scenario if the
number of messages exceeds the value specified as maxSize
----------------------------------------------------------------------------------------------------------------------------------------
Key: SYNAPSE-339
URL: https://issues.apache.org/jira/browse/SYNAPSE-339
Project: Synapse
Issue Type: Bug
Affects Versions: 1.2-beta1
Environment: Windows XP, JDK1.5.0_14
Reporter: Evanthika Amarasiri
Steps to reproduce
1. The following configuration was tried out with the maxSize value set to 2
*********************************************************************************************************************
<definitions xmlns="http://ws.apache.org/ns/synapse">
<in>
<cache timeout="30" scope="per-host" collector="false"
hashGenerator="org.wso2.caching.digest.DOMHASHGenerator"
maxMessageSize="1000">
<implementation type="memory" maxSize="2"/>
</cache>
<send>
<endpoint>
<address
uri="http://localhost:9000/soap/SimpleStockQuoteService"/>
</endpoint>
</send>
</in>
<out>
<cache collector="true"/>
<send/>
</out>
</definitions>
*********************************************************************************************************************
2. Sent requests in the following order
ant stockquote -Dtrpurl=http://localhost:8280/ -Dsymbol=MSFT
ant stockquote -Dtrpurl=http://localhost:8280/ -Dsymbol=MSFT
ant stockquote -Dtrpurl=http://localhost:8280/ -Dsymbol=IBM
ant stockquote -Dtrpurl=http://localhost:8280/ -Dsymbol=IBM
ant stockquote -Dtrpurl=http://localhost:8280/ -Dsymbol=SUN
ant stockquote -Dtrpurl=http://localhost:8280/ -Dsymbol=SUN
When I sent the 6th request above [ant stockquote
-Dtrpurl=http://localhost:8280/ -Dsymbol=SUN] I get the following exception
*******************************************************************************************************************************************************************************************
2008-06-03 15:20:32,750 [10.100.1.228-evanthika] [HttpServerWorker-14] DEBUG
SynapseMessageReceiver Synapse received a new message for message mediation...
2008-06-03 15:20:32,750 [10.100.1.228-evanthika] [HttpServerWorker-14] DEBUG
SynapseMessageReceiver Received To: /
2008-06-03 15:20:32,750 [10.100.1.228-evanthika] [HttpServerWorker-14] DEBUG
SynapseMessageReceiver SOAPAction: urn:getQuote
2008-06-03 15:20:32,750 [10.100.1.228-evanthika] [HttpServerWorker-14] DEBUG
SynapseMessageReceiver WSA-Action: urn:getQuote
2008-06-03 15:20:32,750 [10.100.1.228-evanthika] [HttpServerWorker-14] DEBUG
Axis2SynapseEnvironment Injecting MessageContext
2008-06-03 15:20:32,750 [10.100.1.228-evanthika] [HttpServerWorker-14] DEBUG
Axis2SynapseEnvironment Using Main Sequence for injected message
2008-06-03 15:20:32,750 [10.100.1.228-evanthika] [HttpServerWorker-14] DEBUG
SequenceMediator Start : Sequence <main>
2008-06-03 15:20:32,750 [10.100.1.228-evanthika] [HttpServerWorker-14] DEBUG
SequenceMediator Sequence <SequenceMediator> :: mediate()
2008-06-03 15:20:32,750 [10.100.1.228-evanthika] [HttpServerWorker-14] DEBUG
InMediator Start : In mediator
2008-06-03 15:20:32,750 [10.100.1.228-evanthika] [HttpServerWorker-14] DEBUG
InMediator Current message is incoming - executing child mediators
2008-06-03 15:20:32,750 [10.100.1.228-evanthika] [HttpServerWorker-14] DEBUG
InMediator Sequence <InMediator> :: mediate()
2008-06-03 15:20:32,750 [10.100.1.228-evanthika] [HttpServerWorker-14] DEBUG
CacheMediator Start : Cache mediator
2008-06-03 15:20:32,750 [10.100.1.228-evanthika] [HttpServerWorker-14] DEBUG
CacheMediator Looking up cache at scope : per-host with ID : cacheManager
2008-06-03 15:20:32,750 [10.100.1.228-evanthika] [HttpServerWorker-14] DEBUG
CacheMediator Generated request hash :
1-11146-56-99122-120-89-28-10059-9972-8186105
Exception in thread "HttpServerWorker-14"
java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(Unknown Source)
at java.util.AbstractList$Itr.next(Unknown Source)
at
org.wso2.caching.CacheManager.removeExpiredResponses(CacheManager.java:67)
at
org.apache.synapse.mediators.builtin.CacheMediator.processRequestMessage(CacheMediator.java:351)
at
org.apache.synapse.mediators.builtin.CacheMediator.mediate(CacheMediator.java:148)
at
org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:58)
at
org.apache.synapse.mediators.filters.InMediator.mediate(InMediator.java:60)
at
org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:58)
at
org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:125)
at
org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:176)
at
org.apache.synapse.core.axis2.SynapseMessageReceiver.receive(SynapseMessageReceiver.java:89)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:176)
at
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275)
at
org.apache.synapse.transport.nhttp.ServerWorker.processPost(ServerWorker.java:238)
at
org.apache.synapse.transport.nhttp.ServerWorker.run(ServerWorker.java:194)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]