Hello,

I have JAX-RS service secured by Keycloak. It works fine on Wildfly 8-10 and Glassfish 4. But on Tomee 7.0.1 async methods throws NullPointerException (sync works fine). I have created simple project for test on tomee 7.0.1 combination sync/async + keycloak and here is results:
  1. no keycloak + sync = ok
  2. no keycloak + async = ok
  3. keycloak + sync = ok
  4. keycloak + async = error
Method signature sample:

@GET
public void findAll(@Suspended AsyncResponse response)

Exception stacktrace:

java.lang.NullPointerException
    org.apache.cxf.jaxrs.impl.AsyncResponseImpl.initContinuation(AsyncResponseImpl.java:305)
    org.apache.cxf.jaxrs.impl.AsyncResponseImpl.<init>(AsyncResponseImpl.java:68)
    org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameter(JAXRSUtils.java:816)
    org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameters(JAXRSUtils.java:789)
    org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXRSInInterceptor.java:212)
    org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(JAXRSInInterceptor.java:77)
    org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
    org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
    org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:254)
    org.apache.openejb.server.cxf.rs.CxfRsHttpListener.doInvoke(CxfRsHttpListener.java:251)
    org.apache.tomee.webservices.CXFJAXRSFilter.doFilter(CXFJAXRSFilter.java:94)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    org.apache.openejb.server.httpd.EEFilter.doFilter(EEFilter.java:65)

    private void initContinuation() {
        ContinuationProvider provider = (ContinuationProvider)this.inMessage.get(ContinuationProvider.class.getName());
        this.cont = provider.getContinuation();
        this.initialSuspend = true;
    }

How this issue can be resolved? May be this is tomcat adapter bug?

Best regards, Ilia