axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gary Yue <yueg...@yahoo.com>
Subject HELP - ConcurrentModificationException: concurrent access to HashMap -- inside Axis1.x
Date Wed, 29 Jul 2009 22:27:17 GMT
Hi all,
 
I am geting the following exception periodically when axis server tries to deserialize incoming
requests.
It happens at a relatively low rate (20 times a day out of heavy load traffic, like 5M calls).
From the code, it looks like TypeDesc class is not thread-safe, as inside getFieldNameForElement(),
multiple threads executing this method could potentially be accessing the private member fieldElementMap
hashmap at the same time (get() and put()), which results in concurrent modification exception.
So this looks like a threading poblem inside Axis1.x framework.
 
Has anyone encounter this same problem? Any advice on how to resolve this?
I am using Axis1.1 (but i see Axis1.3 also has the exact same code there)
 
thanks
gary
 st=java.util.ConcurrentModificationException: concurrent access to HashMap attempted by
Thread[http-0.0.0.0-8080-Processor107,5,main]
at java.util.HashMap.onEntry(HashMap.java:214)
at java.util.HashMap.transfer(HashMap.java:686)
at java.util.HashMap.resize(HashMap.java:676)
at java.util.HashMap.addEntry(HashMap.java:1049)
at java.util.HashMap.put(HashMap.java:561)
at org.apache.axis.description.TypeDesc.getFieldNameForElement(TypeDesc.java:355)
at org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeserializer.java:209)
at org.apache.axis.encoding.DeserializationContextImpl.startElement(DeserializationContextImpl.java:963)
at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:198)
at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:722)
at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:233)
at org.apache.axis.message.RPCElement.getParams(RPCElement.java:347)
at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:184)
at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:333)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:150)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:120)
at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:481)
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:323)
at org.apache.axis.transport.http.AxisServlet.doPostOrGet(AxisServlet.java:954)
at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:816)
Mime
View raw message