[ 
https://issues.apache.org/jira/browse/CXF-5414?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mark van den Bergh updated CXF-5414:
------------------------------------

    Description: 
When using Continuation in a Jax web service a stacktrace is printed after 
every call, the web service does work as expected. If a new web service call is 
executed while waiting for the stacktrace (in Apache Tomcat the stacktrace 
appears after about 10 seconds) the web service is very slow. Some calls take 
up to 8 seconds to complete.

This only occurs with CXF versions above 2.7.0. Tested versions: 2.7.1, 2.7.2, 
2.7.3 and 2.7.7.

Example project attached.

{code:title=Continuation web service code|borderStyle=solid}
    public String test() {
        final Continuation continuation = getContinuation();

        if (continuation == null) {
            throw new RuntimeException("Failed to get continuation");
        }

        synchronized (continuation) {
            if(continuation.isNew()) {
                FutureTask futureResponse = new FutureTask<>(new 
Callable<String>() {
                    @Override
                    public String call() throws Exception {
                        Thread.sleep(1000);
                        String response = "Test response";
                        // the blocking call has finished, we resume the 
transport thread
                        continuation.resume();

                        return response;
                    }
                });
                taskExecutor.execute(futureResponse);
                continuation.setObject(futureResponse);

                // suspend the transport thread so it can handle other requests
                continuation.suspend(CONTINUATION_TIMEOUT);
                return null;
            } else {
                FutureTask futureTask = (FutureTask) continuation.getObject();
                if(futureTask.isDone()) {
                    try {
                        return (String) futureTask.get();
                    } catch (InterruptedException | ExecutionException e) {
                        e.printStackTrace();
                    }
                } else {
                    continuation.suspend(CONTINUATION_TIMEOUT);
                }
            }
        }
        // unreachable
        return null;
    }

    private Continuation getContinuation() {
        ContinuationProvider provider = (ContinuationProvider) 
context.getMessageContext().get(ContinuationProvider.class.getName());
        return provider.getContinuation();
    }
{code}

{code:title=Stacktraces|borderStyle=solid}
Nov 21, 2013 10:15:53 PM org.apache.cxf.phase.PhaseInterceptorChain 
doDefaultLogging
WARNING: Interceptor for 
{http://continuation.example.com/}ContinuationWebServiceService#{http://continuation.example.com/}test
 has thrown exception, unwinding now
java.lang.RuntimeException: Can't find input stream in message
        at 
org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:145)
        at 
org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:62)
        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:239)
        at 
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:248)
        at 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:222)
        at 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:153)
        at 
org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:167)
        at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:286)
        at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:206)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
        at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:262)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at 
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
        at 
org.apache.catalina.core.ApplicationDispatcher.doDispatch(ApplicationDispatcher.java:660)
        at 
org.apache.catalina.core.ApplicationDispatcher.dispatch(ApplicationDispatcher.java:626)
        at 
org.apache.catalina.core.AsyncContextImpl$1.run(AsyncContextImpl.java:225)
        at 
org.apache.catalina.core.AsyncContextImpl.doInternalDispatch(AsyncContextImpl.java:367)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:217)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
        at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
        at 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at 
org.apache.catalina.connector.CoyoteAdapter.asyncDispatch(CoyoteAdapter.java:299)
        at 
org.apache.coyote.http11.AbstractHttp11Processor.asyncDispatch(AbstractHttp11Processor.java:1587)
        at 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:583)
        at 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:722)

Nov 21, 2013 10:15:53 PM org.apache.cxf.phase.PhaseInterceptorChain 
doDefaultLogging
WARNING: Interceptor for 
{http://continuation.example.com/}ContinuationWebServiceService#{http://continuation.example.com/}test
 has thrown exception, unwinding now
org.apache.cxf.binding.soap.SoapFault: Error writing to XMLStreamWriter.
        at 
org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor$SoapOutEndingInterceptor.handleMessage(SoapOutInterceptor.java:300)
        at 
org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor$SoapOutEndingInterceptor.handleMessage(SoapOutInterceptor.java:282)
        at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)
        at 
org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:113)
        at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:333)
        at 
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
        at 
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:239)
        at 
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:248)
        at 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:222)
        at 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:153)
        at 
org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:167)
        at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:286)
        at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:206)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
        at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:262)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at 
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
        at 
org.apache.catalina.core.ApplicationDispatcher.doDispatch(ApplicationDispatcher.java:660)
        at 
org.apache.catalina.core.ApplicationDispatcher.dispatch(ApplicationDispatcher.java:626)
        at 
org.apache.catalina.core.AsyncContextImpl$1.run(AsyncContextImpl.java:225)
        at 
org.apache.catalina.core.AsyncContextImpl.doInternalDispatch(AsyncContextImpl.java:367)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:217)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
        at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
        at 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at 
org.apache.catalina.connector.CoyoteAdapter.asyncDispatch(CoyoteAdapter.java:299)
        at 
org.apache.coyote.http11.AbstractHttp11Processor.asyncDispatch(AbstractHttp11Processor.java:1587)
        at 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:583)
        at 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:722)
Caused by: javax.xml.stream.XMLStreamException: No open start element, when 
trying to write end element
        at 
com.ctc.wstx.sw.BaseStreamWriter.throwOutputError(BaseStreamWriter.java:1522)
        at 
com.ctc.wstx.sw.BaseStreamWriter.reportNwfStructure(BaseStreamWriter.java:1551)
        at 
com.ctc.wstx.sw.BaseNsStreamWriter.doWriteEndTag(BaseNsStreamWriter.java:648)
        at 
com.ctc.wstx.sw.BaseNsStreamWriter.writeEndElement(BaseNsStreamWriter.java:280)
        at 
org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor$SoapOutEndingInterceptor.handleMessage(SoapOutInterceptor.java:291)
        ... 35 more
{code}

  was:
When using Continuation in a Jax web service after every call a stacktrace is 
printed (the web service does work as expected). If a new web service call is 
executed while waiting for the stacktrace (in Apache Tomcat the stacktrace 
appears after about 10 seconds) the web service is very slow. Some calls take 
up to 8 seconds to complete.

This only occurs with CXF versions above 2.7.0. Tested versions: 2.7.1, 2.7.2, 
2.7.3 and 2.7.7.

Example project attached.

{code:title=Continuation web service code|borderStyle=solid}
    public String test() {
        final Continuation continuation = getContinuation();

        if (continuation == null) {
            throw new RuntimeException("Failed to get continuation");
        }

        synchronized (continuation) {
            if(continuation.isNew()) {
                FutureTask futureResponse = new FutureTask<>(new 
Callable<String>() {
                    @Override
                    public String call() throws Exception {
                        Thread.sleep(1000);
                        String response = "Test response";
                        // the blocking call has finished, we resume the 
transport thread
                        continuation.resume();

                        return response;
                    }
                });
                taskExecutor.execute(futureResponse);
                continuation.setObject(futureResponse);

                // suspend the transport thread so it can handle other requests
                continuation.suspend(CONTINUATION_TIMEOUT);
                return null;
            } else {
                FutureTask futureTask = (FutureTask) continuation.getObject();
                if(futureTask.isDone()) {
                    try {
                        return (String) futureTask.get();
                    } catch (InterruptedException | ExecutionException e) {
                        e.printStackTrace();
                    }
                } else {
                    continuation.suspend(CONTINUATION_TIMEOUT);
                }
            }
        }
        // unreachable
        return null;
    }

    private Continuation getContinuation() {
        ContinuationProvider provider = (ContinuationProvider) 
context.getMessageContext().get(ContinuationProvider.class.getName());
        return provider.getContinuation();
    }
{code}

{code:title=Stacktraces|borderStyle=solid}
Nov 21, 2013 10:15:53 PM org.apache.cxf.phase.PhaseInterceptorChain 
doDefaultLogging
WARNING: Interceptor for 
{http://continuation.example.com/}ContinuationWebServiceService#{http://continuation.example.com/}test
 has thrown exception, unwinding now
java.lang.RuntimeException: Can't find input stream in message
        at 
org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:145)
        at 
org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:62)
        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:239)
        at 
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:248)
        at 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:222)
        at 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:153)
        at 
org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:167)
        at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:286)
        at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:206)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
        at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:262)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at 
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
        at 
org.apache.catalina.core.ApplicationDispatcher.doDispatch(ApplicationDispatcher.java:660)
        at 
org.apache.catalina.core.ApplicationDispatcher.dispatch(ApplicationDispatcher.java:626)
        at 
org.apache.catalina.core.AsyncContextImpl$1.run(AsyncContextImpl.java:225)
        at 
org.apache.catalina.core.AsyncContextImpl.doInternalDispatch(AsyncContextImpl.java:367)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:217)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
        at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
        at 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at 
org.apache.catalina.connector.CoyoteAdapter.asyncDispatch(CoyoteAdapter.java:299)
        at 
org.apache.coyote.http11.AbstractHttp11Processor.asyncDispatch(AbstractHttp11Processor.java:1587)
        at 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:583)
        at 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:722)

Nov 21, 2013 10:15:53 PM org.apache.cxf.phase.PhaseInterceptorChain 
doDefaultLogging
WARNING: Interceptor for 
{http://continuation.example.com/}ContinuationWebServiceService#{http://continuation.example.com/}test
 has thrown exception, unwinding now
org.apache.cxf.binding.soap.SoapFault: Error writing to XMLStreamWriter.
        at 
org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor$SoapOutEndingInterceptor.handleMessage(SoapOutInterceptor.java:300)
        at 
org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor$SoapOutEndingInterceptor.handleMessage(SoapOutInterceptor.java:282)
        at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)
        at 
org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:113)
        at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:333)
        at 
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
        at 
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:239)
        at 
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:248)
        at 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:222)
        at 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:153)
        at 
org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:167)
        at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:286)
        at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:206)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
        at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:262)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at 
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
        at 
org.apache.catalina.core.ApplicationDispatcher.doDispatch(ApplicationDispatcher.java:660)
        at 
org.apache.catalina.core.ApplicationDispatcher.dispatch(ApplicationDispatcher.java:626)
        at 
org.apache.catalina.core.AsyncContextImpl$1.run(AsyncContextImpl.java:225)
        at 
org.apache.catalina.core.AsyncContextImpl.doInternalDispatch(AsyncContextImpl.java:367)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:217)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
        at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
        at 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at 
org.apache.catalina.connector.CoyoteAdapter.asyncDispatch(CoyoteAdapter.java:299)
        at 
org.apache.coyote.http11.AbstractHttp11Processor.asyncDispatch(AbstractHttp11Processor.java:1587)
        at 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:583)
        at 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:722)
Caused by: javax.xml.stream.XMLStreamException: No open start element, when 
trying to write end element
        at 
com.ctc.wstx.sw.BaseStreamWriter.throwOutputError(BaseStreamWriter.java:1522)
        at 
com.ctc.wstx.sw.BaseStreamWriter.reportNwfStructure(BaseStreamWriter.java:1551)
        at 
com.ctc.wstx.sw.BaseNsStreamWriter.doWriteEndTag(BaseNsStreamWriter.java:648)
        at 
com.ctc.wstx.sw.BaseNsStreamWriter.writeEndElement(BaseNsStreamWriter.java:280)
        at 
org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor$SoapOutEndingInterceptor.handleMessage(SoapOutInterceptor.java:291)
        ... 35 more
{code}


> XMLStreamException when using Continuations in versions > 2.7.0
> ---------------------------------------------------------------
>
>                 Key: CXF-5414
>                 URL: https://issues.apache.org/jira/browse/CXF-5414
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-WS Runtime
>    Affects Versions: 2.7.1, 2.7.2, 2.7.3, 2.7.4, 2.7.5, 2.7.6, 2.7.7
>         Environment: Ubuntu 12.04, Ubuntu 13.04, Java 7, Apache Tomcat 7.0.42
>            Reporter: Mark van den Bergh
>              Labels: continuation, future, threading
>             Fix For: 2.7.0
>
>         Attachments: ContinuationTest.zip
>
>
> When using Continuation in a Jax web service a stacktrace is printed after 
> every call, the web service does work as expected. If a new web service call 
> is executed while waiting for the stacktrace (in Apache Tomcat the stacktrace 
> appears after about 10 seconds) the web service is very slow. Some calls take 
> up to 8 seconds to complete.
> This only occurs with CXF versions above 2.7.0. Tested versions: 2.7.1, 
> 2.7.2, 2.7.3 and 2.7.7.
> Example project attached.
> {code:title=Continuation web service code|borderStyle=solid}
>     public String test() {
>         final Continuation continuation = getContinuation();
>         if (continuation == null) {
>             throw new RuntimeException("Failed to get continuation");
>         }
>         synchronized (continuation) {
>             if(continuation.isNew()) {
>                 FutureTask futureResponse = new FutureTask<>(new 
> Callable<String>() {
>                     @Override
>                     public String call() throws Exception {
>                         Thread.sleep(1000);
>                         String response = "Test response";
>                         // the blocking call has finished, we resume the 
> transport thread
>                         continuation.resume();
>                         return response;
>                     }
>                 });
>                 taskExecutor.execute(futureResponse);
>                 continuation.setObject(futureResponse);
>                 // suspend the transport thread so it can handle other 
> requests
>                 continuation.suspend(CONTINUATION_TIMEOUT);
>                 return null;
>             } else {
>                 FutureTask futureTask = (FutureTask) continuation.getObject();
>                 if(futureTask.isDone()) {
>                     try {
>                         return (String) futureTask.get();
>                     } catch (InterruptedException | ExecutionException e) {
>                         e.printStackTrace();
>                     }
>                 } else {
>                     continuation.suspend(CONTINUATION_TIMEOUT);
>                 }
>             }
>         }
>         // unreachable
>         return null;
>     }
>     private Continuation getContinuation() {
>         ContinuationProvider provider = (ContinuationProvider) 
> context.getMessageContext().get(ContinuationProvider.class.getName());
>         return provider.getContinuation();
>     }
> {code}
> {code:title=Stacktraces|borderStyle=solid}
> Nov 21, 2013 10:15:53 PM org.apache.cxf.phase.PhaseInterceptorChain 
> doDefaultLogging
> WARNING: Interceptor for 
> {http://continuation.example.com/}ContinuationWebServiceService#{http://continuation.example.com/}test
>  has thrown exception, unwinding now
> java.lang.RuntimeException: Can't find input stream in message
>       at 
> org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:145)
>       at 
> org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:62)
>       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:239)
>       at 
> org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:248)
>       at 
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:222)
>       at 
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:153)
>       at 
> org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:167)
>       at 
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:286)
>       at 
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:206)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
>       at 
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:262)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.doDispatch(ApplicationDispatcher.java:660)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.dispatch(ApplicationDispatcher.java:626)
>       at 
> org.apache.catalina.core.AsyncContextImpl$1.run(AsyncContextImpl.java:225)
>       at 
> org.apache.catalina.core.AsyncContextImpl.doInternalDispatch(AsyncContextImpl.java:367)
>       at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:217)
>       at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
>       at 
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
>       at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
>       at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
>       at 
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
>       at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>       at 
> org.apache.catalina.connector.CoyoteAdapter.asyncDispatch(CoyoteAdapter.java:299)
>       at 
> org.apache.coyote.http11.AbstractHttp11Processor.asyncDispatch(AbstractHttp11Processor.java:1587)
>       at 
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:583)
>       at 
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>       at java.lang.Thread.run(Thread.java:722)
> Nov 21, 2013 10:15:53 PM org.apache.cxf.phase.PhaseInterceptorChain 
> doDefaultLogging
> WARNING: Interceptor for 
> {http://continuation.example.com/}ContinuationWebServiceService#{http://continuation.example.com/}test
>  has thrown exception, unwinding now
> org.apache.cxf.binding.soap.SoapFault: Error writing to XMLStreamWriter.
>       at 
> org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor$SoapOutEndingInterceptor.handleMessage(SoapOutInterceptor.java:300)
>       at 
> org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor$SoapOutEndingInterceptor.handleMessage(SoapOutInterceptor.java:282)
>       at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)
>       at 
> org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:113)
>       at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:333)
>       at 
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
>       at 
> org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:239)
>       at 
> org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:248)
>       at 
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:222)
>       at 
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:153)
>       at 
> org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:167)
>       at 
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:286)
>       at 
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:206)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
>       at 
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:262)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.doDispatch(ApplicationDispatcher.java:660)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.dispatch(ApplicationDispatcher.java:626)
>       at 
> org.apache.catalina.core.AsyncContextImpl$1.run(AsyncContextImpl.java:225)
>       at 
> org.apache.catalina.core.AsyncContextImpl.doInternalDispatch(AsyncContextImpl.java:367)
>       at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:217)
>       at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
>       at 
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
>       at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
>       at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
>       at 
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
>       at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>       at 
> org.apache.catalina.connector.CoyoteAdapter.asyncDispatch(CoyoteAdapter.java:299)
>       at 
> org.apache.coyote.http11.AbstractHttp11Processor.asyncDispatch(AbstractHttp11Processor.java:1587)
>       at 
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:583)
>       at 
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>       at java.lang.Thread.run(Thread.java:722)
> Caused by: javax.xml.stream.XMLStreamException: No open start element, when 
> trying to write end element
>       at 
> com.ctc.wstx.sw.BaseStreamWriter.throwOutputError(BaseStreamWriter.java:1522)
>       at 
> com.ctc.wstx.sw.BaseStreamWriter.reportNwfStructure(BaseStreamWriter.java:1551)
>       at 
> com.ctc.wstx.sw.BaseNsStreamWriter.doWriteEndTag(BaseNsStreamWriter.java:648)
>       at 
> com.ctc.wstx.sw.BaseNsStreamWriter.writeEndElement(BaseNsStreamWriter.java:280)
>       at 
> org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor$SoapOutEndingInterceptor.handleMessage(SoapOutInterceptor.java:291)
>       ... 35 more
> {code}



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to