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