[ 
https://issues.apache.org/jira/browse/CXF-4406?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13411572#comment-13411572
 ] 

Martynas commented on CXF-4406:
-------------------------------

It seems the problem was found.

The same application also provides RESTful services. It was using quite an old 
version of Restlet library (2.0.0M3). And using this library together with 
Apache CXF caused the problem.

After updating Restlet to 2.0.14 which is the latest, problem was gone.

Here is the exact Restlet commit that fixed this issue:
https://github.com/restlet/restlet-framework-java/commit/d2ffda532e18d71eae8b210ba44895292656f1f0
                
> "Couldn't parse stream" while receiving message when service provider is 
> under load
> -----------------------------------------------------------------------------------
>
>                 Key: CXF-4406
>                 URL: https://issues.apache.org/jira/browse/CXF-4406
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-WS Runtime, Transports
>    Affects Versions: 2.5.2
>         Environment: Linux 2.6.18-274.el5
> java version "1.6.0_27"
> Java(TM) SE Runtime Environment (build 1.6.0_27-b07)
> Java HotSpot(TM) 64-Bit Server VM (build 20.2-b06, mixed mode)
>            Reporter: Martynas
>
> I have a web application which runs on Tomcat web container. Application 
> provides couple of web services. I am getting the following exception around 
> 20 times in an hour, when server is under load, (couple of requests a second).
> My CXF configuration is:
> {noformat}
> <jaxws:endpoint
>         id="ds"
>         implementor="lt.company.ServiceImpl"
>         wsdlLocation="WEB-INF/wsdl/main.wsdl"
>         address="/service">        
>         <jaxws:invoker>
>             <bean class="org.apache.cxf.jaxws.JAXWSMethodInvoker">
>                 <constructor-arg>
>                     <bean 
> class="org.apache.cxf.service.invoker.PooledFactory">
>                         <constructor-arg value="lt.company.ServiceImpl" />
>                         <constructor-arg value="10" />
>                     </bean>
>                 </constructor-arg>
>             </bean>
>         </jaxws:invoker>
>     </jaxws:endpoint>
> {noformat}
> Increasing pool size to 50 helped a bit, but not significantly.
> I am using these cxf libraries:
> {noformat}
> <dependency>
>     <groupId>org.apache.cxf</groupId>
>     <artifactId>cxf-rt-frontend-jaxws</artifactId>
>     <version>2.5.2</version>
> </dependency>
> <dependency>
>     <groupId>org.apache.cxf</groupId>
>     <artifactId>cxf-rt-transports-http</artifactId>
>     <version>2.5.2</version>
> </dependency>
> {noformat}
> {noformat}
> java.lang.RuntimeException: Couldn't parse stream.
>         at 
> org.apache.cxf.staxutils.StaxUtils.createXMLStreamReader(StaxUtils.java:1181)
>         at 
> org.apache.cxf.interceptor.StaxInInterceptor.handleMessage(StaxInInterceptor.java:104)
>         at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
>         at 
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:123)
>         at 
> org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:207)
>         at 
> org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213)
>         at 
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:193)
>         at 
> org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:126)
>         at 
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:185)
>         at 
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:108)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
>         at 
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:164)
>         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:684)
>         at 
> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471)
>         at 
> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402)
>         at 
> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
>         at 
> org.tuckey.web.filters.urlrewrite.NormalRewrittenUrl.doRewrite(NormalRewrittenUrl.java:213)
>         at 
> org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:171)
>         at 
> org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
>         at 
> org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
>         at 
> org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:381)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>         at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
>         at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
>         at 
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
>         at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
>         at 
> com.mulesoft.tcat.monitoring.tomcat.Tomcat55AgentValve.invoke(Tomcat55AgentValve.java:20)
>         at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
>         at 
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928)
>         at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>         at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
>         at 
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
>         at 
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539)
>         at 
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:298)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>         at java.lang.Thread.run(Thread.java:662)
> Caused by: com.ctc.wstx.exc.WstxIOException: Stream closed
>         at 
> com.ctc.wstx.stax.WstxInputFactory.doCreateSR(WstxInputFactory.java:536)
>         at 
> com.ctc.wstx.stax.WstxInputFactory.createSR(WstxInputFactory.java:585)
>         at 
> com.ctc.wstx.stax.WstxInputFactory.createSR(WstxInputFactory.java:610)
>         at 
> com.ctc.wstx.stax.WstxInputFactory.createXMLStreamReader(WstxInputFactory.java:316)
>         at 
> org.apache.cxf.staxutils.StaxUtils.createXMLStreamReader(StaxUtils.java:1179)
>         ... 39 more
> Caused by: java.io.IOException: Stream closed
>         at 
> org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:312)
>         at 
> org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:200)
>         at java.io.FilterInputStream.read(FilterInputStream.java:116)
>         at com.ctc.wstx.io.BaseReader.readBytes(BaseReader.java:155)
>         at com.ctc.wstx.io.UTF8Reader.loadMore(UTF8Reader.java:368)
>         at com.ctc.wstx.io.UTF8Reader.read(UTF8Reader.java:111)
>         at 
> com.ctc.wstx.io.ReaderBootstrapper.initialLoad(ReaderBootstrapper.java:250)
>         at 
> com.ctc.wstx.io.ReaderBootstrapper.bootstrapInput(ReaderBootstrapper.java:133)
>         at 
> com.ctc.wstx.stax.WstxInputFactory.doCreateSR(WstxInputFactory.java:531)
>         ... 43 more
> {noformat}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to