ConcurrentModificationException when there are two concurrent SOAP requests
---------------------------------------------------------------------------

                 Key: XFIRE-1119
                 URL: http://jira.codehaus.org/browse/XFIRE-1119
             Project: XFire
          Issue Type: Bug
    Affects Versions: 1.2.1
         Environment: WebSphere 6.1.0 and IHS
            Reporter: Dotan Limon
            Assignee: Dan Diephouse


I'm using XFire 1.2.1 in my application and when there are two concurrent SOAP 
requests I'm sometime getting the next exception:

java.util.ConcurrentModificationException: concurrent access to HashMap 
attempted by Thread[WebContainer : 16,5,main]
        at java.util.HashMap.onExit(HashMap.java:225)
        at java.util.HashMap.transfer(HashMap.java:636)
        at java.util.HashMap.resize(HashMap.java:622)
        at java.util.HashMap.addEntry(HashMap.java:994)
        at java.util.HashMap.put(HashMap.java:510)
        at 
org.codehaus.xfire.aegis.type.basic.BeanTypeInfo.mapType(BeanTypeInfo.java:219)
        at 
org.codehaus.xfire.aegis.type.basic.BeanTypeInfo.getType(BeanTypeInfo.java:202)
        at 
org.codehaus.xfire.aegis.type.basic.BeanType.getType(BeanType.java:408)
        at 
org.codehaus.xfire.aegis.type.basic.BeanType.writeObject(BeanType.java:272)
        at 
org.codehaus.xfire.aegis.AegisBindingProvider.writeParameter(AegisBindingProvider.java:111)
        at 
org.codehaus.xfire.service.binding.AbstractBinding.writeParameter(AbstractBinding.java:240)
        at 
org.codehaus.xfire.service.binding.WrappedBinding.writeMessage(WrappedBinding.java:89)
        at 
org.codehaus.xfire.soap.SoapSerializer.writeMessage(SoapSerializer.java:81)
        at 
org.codehaus.xfire.util.dom.DOMOutHandler.getMessageBytes(DOMOutHandler.java:58)
        at 
org.codehaus.xfire.util.dom.DOMOutHandler.invoke(DOMOutHandler.java:43)
        at 
org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:98)
        at 
org.codehaus.xfire.service.binding.ServiceInvocationHandler.sendMessage(ServiceInvocationHandler.java:210)
        at 
org.codehaus.xfire.service.binding.ServiceInvocationHandler.invoke(ServiceInvocationHandler.java:71)
        at 
org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:98)
        at 
org.codehaus.xfire.transport.DefaultEndpoint.onReceive(DefaultEndpoint.java:58)
        at 
org.codehaus.xfire.transport.AbstractChannel.receive(AbstractChannel.java:38)
        at 
org.codehaus.xfire.transport.http.XFireServletController.invoke(XFireServletController.java:276)
        at 
org.codehaus.xfire.transport.http.XFireServletController.doService(XFireServletController.java:145)
        at 
org.codehaus.xfire.transport.http.XFireServlet.doPost(XFireServlet.java:100)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
        at 
com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:989)
        at 
com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:501)
        at 
com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:464)
        at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3276)
        at 
com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:267)
        at 
com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:811)
        at 
com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1455)
        at 
com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:113)
        at 
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:454)
        at 
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:383)
        at 
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:263)
        at 
com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
        at 
com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
        at 
com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
        at 
com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
        at 
com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
        at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
        at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:195)
        at 
com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:743)
        at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:873)
        at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1469)

It's probably caused by accessing hashmap that is not thread safe in the xfire 
code.
Hope you can help with this bug.


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

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

    http://xircles.codehaus.org/manage_email


Reply via email to