Uploaded image for project: 'Red Hat Fuse'
  1. Red Hat Fuse
  2. ENTESB-6525

SWITCHYARD035408 error caused by java.util.ConcurrentModificationException under load

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • fuse-6.x-GA
    • jboss-fuse-6.3
    • SwitchYard
    • None
    • % %
    • Hide

      1. Start Fuse 6.3.0 on EAP
      2. Deploy the attached modified quickstart
      3. Enable DEBUG level logging for the org.switchyard.component package
      4. Use the attached jmeter script to call the soap endpoint concurrently
      5. After some time, the jmeter execution will stop, with the SWITCHYARD035408 error written to the $JMETER_HOME/response1.xml file, and the server.log file showing the full exception

      Show
      1. Start Fuse 6.3.0 on EAP 2. Deploy the attached modified quickstart 3. Enable DEBUG level logging for the org.switchyard.component package 4. Use the attached jmeter script to call the soap endpoint concurrently 5. After some time, the jmeter execution will stop, with the SWITCHYARD035408 error written to the $JMETER_HOME/response1.xml file, and the server.log file showing the full exception

      Accessing our SOAP based services on Fuse 6.3 concurrently, we are intermittently seeing a SOAP error on our client side software with the error message "SWITCHYARD035408: Failed to map context properties to SOAP message".

      The server.log file shows the full stacktrace with DEBUG level logging enabled for org.switchyard.component:

      DEBUG [org.switchyard.component.soap.util.SOAPUtil] (http-127.0.0.1:8080-6) javax.xml.soap.SOAPException: SWITCHYARD035408: Failed to map context properties to SOAP message
      	at org.switchyard.component.soap.composer.SOAPMessageComposer.decompose(SOAPMessageComposer.java:278)
      	at org.switchyard.quickstarts.camel.soap.proxy.CustomMessageComposer.decompose(CustomMessageComposer.java:24)
      	at org.switchyard.quickstarts.camel.soap.proxy.CustomMessageComposer.decompose(CustomMessageComposer.java:14)
      	at org.switchyard.component.soap.InboundHandler.composeResponse(InboundHandler.java:374)
      	at org.switchyard.component.soap.InboundHandler.invoke(InboundHandler.java:360)
      	at org.switchyard.component.soap.endpoint.BaseWebService.invoke(BaseWebService.java:110)
      	at org.switchyard.component.soap.endpoint.BaseWebService.invoke(BaseWebService.java:40)
      	at sun.reflect.GeneratedMethodAccessor35.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:498)
      	at org.jboss.ws.common.invocation.AbstractInvocationHandlerJSE.invoke(AbstractInvocationHandlerJSE.java:108)
      	at org.jboss.wsf.stack.cxf.JBossWSInvoker.performInvocation(JBossWSInvoker.java:177)
      	at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:104)
      	at org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.invoke(AbstractJAXWSMethodInvoker.java:237)
      	at org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:69)
      	at org.jboss.wsf.stack.cxf.JBossWSInvoker.invoke(JBossWSInvoker.java:146)
      	at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      	at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
      	at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:107)
      	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)
      	at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
      	at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:249)
      	at org.jboss.wsf.stack.cxf.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:97)
      	at org.jboss.wsf.stack.cxf.transport.ServletHelper.callRequestHandler(ServletHelper.java:131)
      	at org.jboss.wsf.stack.cxf.CXFServletExt.invoke(CXFServletExt.java:88)
      	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:289)
      	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:209)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
      	at org.jboss.wsf.stack.cxf.CXFServletExt.service(CXFServletExt.java:136)
      	at org.jboss.wsf.spi.deployment.WSFServlet.service(WSFServlet.java:140)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
      	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:231)
      	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149)
      	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:150)
      	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97)
      	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102)
      	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344)
      	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:854)
      	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:654)
      	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:926)
      	at java.lang.Thread.run(Thread.java:745)
      Caused by: java.util.ConcurrentModificationException
      	at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901)
      	at java.util.ArrayList$Itr.next(ArrayList.java:851)
      	at org.switchyard.component.common.composer.BaseRegexContextMapper.matches(BaseRegexContextMapper.java:131)
      	at org.switchyard.component.soap.composer.SOAPContextMapper.copyToSOAPHeader(SOAPContextMapper.java:233)
      	at org.switchyard.component.soap.composer.SOAPContextMapper.mapTo(SOAPContextMapper.java:212)
      	at org.switchyard.component.soap.composer.SOAPContextMapper.mapTo(SOAPContextMapper.java:51)
      	at org.switchyard.component.soap.composer.SOAPMessageComposer.decompose(SOAPMessageComposer.java:276)
      	... 44 more
      

        1. entesb-6525.xml
          2 kB
          Pavel Macik
        2. getEcho.jmx
          8 kB
          Martin Weiler

              tcunning@redhat.com Thomas Cunningham
              rhn-support-mputz Martin Weiler (Inactive)
              Pavel Macik Pavel Macik
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: