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]

Reply via email to