pmerlin1

Have you meet problem between CXF web services and APM  on high concurrency application ?

Discussion created by pmerlin1 on Nov 26, 2016
Latest reply on Nov 28, 2016 by Hallett_German

Hi, 

 

My company developped highly multithreaded applications which calls web service implemented  on the  Apache CXF stack. Sometimes an exception java occured. The stack trace is like below :

 javax.xml.ws.soap.SOAPFaultException: Fault string, and possibly fault code, not set      at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:155) [cxf-rt-frontend-jaxws-2.7.3.jar:2.7.3]

.....

Caused by: java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:926) [rt.jar:1.7.0_40]
at java.util.HashMap$EntryIterator.next(HashMap.java:966) [rt.jar:1.7.0_40]
at java.util.HashMap$EntryIterator.next(HashMap.java:964) [rt.jar:1.7.0_40]
at java.util.AbstractMap.putAll(AbstractMap.java:272) [rt.jar:1.7.0_40]
at java.util.TreeMap.putAll(TreeMap.java:322) [rt.jar:1.7.0_40]
at org.apache.cxf.transport.http.Headers.getSetProtocolHeaders(Headers.java:224) [cxf-rt-transports-http-2.7.3.jar:2.7.3]
at org.apache.cxf.transport.http.Headers.<init>(Headers.java:65) [cxf-rt-transports-http-2.7.3.jar:2.7.3]
at org.apache.cxf.transport.http.HTTPConduit.setHeadersByAuthorizationPolicy(HTTPConduit.java:746) [cxf-rt-transports-http-2.7.3.jar:2.7.3]
at org.apache.cxf.transport.http.HTTPConduit.prepare(HTTPConduit.java:526) [cxf-rt-transports-http-2.7.3.jar:2.7.3]
at org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(MessageSenderInterceptor.java:46) [cxf-api-2.7.3.jar:2.7.3]
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271) [cxf-api-2.7.3.jar:2.7.3]
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:530) [cxf-api-2.7.3.jar:2.7.3]
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:463) [cxf-api-2.7.3.jar:2.7.3]
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:366) [cxf-api-2.7.3.jar:2.7.3]
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:319) [cxf-api-2.7.3.jar:2.7.3]
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96) [cxf-rt-frontend-simple-2.7.3.jar:2.7.3]
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:133) [cxf-rt-frontend-jaxws-2.7.3.jar:2.7.3]
... 86 more

I suspect a competition processing on HTTP header between Introscope agent adding correlation identifier and cxf framework.
The version of cxf is 2.7.3.
Have you ever meet an issue of this kind ?

Outcomes