Details
-
Bug
-
Status: Open
-
Critical
-
Resolution: Unresolved
-
1.4
-
None
-
JDK 1.5.0_10 AMD64
RHEL4 x64
Description
Basically we have a bunch of threads stuck within Axis consuming 100% of our CPU. This appears to be during deserialization of a response (from EBay API in this instance). My best guess would be some sort of thread-unsafe modification to the HashMap used by getFieldNameForElement(), resulting in a corrupted internal HashMap state and thusly infinite looping.
----------------------------------------------------------
Name: http-8080-Processor51
State: RUNNABLE
Total blocked: 52 Total waited: 1,995
Stack trace:
java.util.HashMap.get(HashMap.java:346)
org.apache.axis.description.TypeDesc.getFieldNameForElement(TypeDesc.java:313)
org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeserializer.java:197)
org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
org.apache.axis.message.RPCElement.deserialize(RPCElement.java:236)
org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
org.apache.axis.client.Call.invoke(Call.java:2467)
org.apache.axis.client.Call.invoke(Call.java:2366)
org.apache.axis.client.Call.invoke(Call.java:1812)
com.automotive.app.content.ebay.api.EBayAPISoapBindingStub.getItem(EBayAPISoapBindingStub.java:7962)
.....
Name: http-8080-Processor25
State: RUNNABLE
Total blocked: 295 Total waited: 10,588
Stack trace:
java.util.HashMap.get(HashMap.java:346)
org.apache.axis.description.TypeDesc.getFieldNameForElement(TypeDesc.java:313)
org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeserializer.java:197)
org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
org.apache.axis.message.RPCElement.deserialize(RPCElement.java:236)
org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
org.apache.axis.client.Call.invoke(Call.java:2467)
org.apache.axis.client.Call.invoke(Call.java:2366)
org.apache.axis.client.Call.invoke(Call.java:1812)
com.automotive.app.content.ebay.api.EBayAPISoapBindingStub.getItem(EBayAPISoapBindingStub.java:7962)
.....