JAX-WS client invocation time keeps increasing over life of JVM in EAP 6

Solution Verified - Updated -

Issue

JAX-WS client invocations keep increasing over the life of the JVM. Some notes about the client:

  • The Service object is cached between invocations
  • To ensure the application's custom JAX-WS handlers are set on the port, ((BindingProvider)port).getBinding().setHandlerChain(handlerChain) is invoked before every invocation.
  • The handler chain can also just be set once to cause the issue:

    final Service service = Service.create(wsdl, ns);
    service.setHandlerResolver(new HandlerResolver() {
      public List<Handler> getHandlerChain(PortInfo info) {
        log.warn("Retrieving custom handler chain");
        return handlerChain;
      }
    });
    
  • There are lots of stack traces like this in a tread dump with the issue, showing high CPU in org.apache.cxf.phase.PhaseInterceptorChain.add:

    "http-/10.150.85.229:8080-74" daemon prio=10 tid=0x00007f9fe0043800 nid=0x7a76 runnable [0x00007fa06f4dc000]
       java.lang.Thread.State: RUNNABLE
      at org.apache.cxf.phase.PhaseInterceptorChain.insertInterceptor(PhaseInterceptorChain.java:494)
      at org.apache.cxf.phase.PhaseInterceptorChain.add(PhaseInterceptorChain.java:208)
      at org.apache.cxf.phase.PhaseInterceptorChain.add(PhaseInterceptorChain.java:185)
      at org.apache.cxf.phase.PhaseInterceptorChain.add(PhaseInterceptorChain.java:176)
      at org.apache.cxf.phase.PhaseChainCache.getChain(PhaseChainCache.java:93)
      at org.apache.cxf.phase.PhaseChainCache.get(PhaseChainCache.java:77)
      at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:744)
    

Environment

  • Red Hat JBoss Enterprise Application Platform (EAP)
    • 6.x

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content