[ https://issues.apache.org/jira/browse/CXF-6099?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sergio Santa updated CXF-6099: ------------------------------ Attachment: test.zip The zip contains a simple example where the issue can reproduced easily: test.message (WS interface and implemenation) test.message.server (Server part to publish the webservice) test.message.client (Unit test that connects to the published webservice) Using the current implementation (MessageTestImpl) the issue can be reproduced. It blocked and a timeout is reached. In the file MessageTestImpl the value of 650 is changed to 550, then the unit tests run successfully. > endpoint responses gets truncated or blocked writing soap messages with a > size around 14K after upgrade to jdk8 > --------------------------------------------------------------------------------------------------------------- > > Key: CXF-6099 > URL: https://issues.apache.org/jira/browse/CXF-6099 > Project: CXF > Issue Type: Bug > Components: JAX-WS Runtime, JAXB Databinding > Affects Versions: 3.0.2 > Environment: SO: Windows 7, linux fedora distribution. > JVM: jdk8 > Reporter: Sergio Santa > Labels: cxf-frontend, java8, jax-ws,, jaxb, jdk8 > Attachments: test.zip > > > After upgrading to java 8 we are having an issue when our endpoint is sending > the responses to client. After digging into it, I realized that the endpoint > on server side truncates or gets blocked when writing a SOAP message bigger > 14KB (approximately). > The client reaches a timeout throwing the following exception: > WARNING: Interceptor for > {http://message.test/}IMessageTestService#{http://message.test/}runTestMethod > has thrown exception, unwinding now > org.apache.cxf.interceptor.Fault: Unmarshalling Error: Read timed out > at > org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:882) > at > org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:703) > at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:160) > at > org.apache.cxf.wsdl.interceptors.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:108) > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307) > at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:798) > at > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1638) > at > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1527) > at > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1330) > at > org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56) > at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:638) > at > org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307) > at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:514) > at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:423) > at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:326) > at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:279) > at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96) > at > org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:138) > at com.sun.proxy.$Proxy41.runTestMethod(Unknown Source) > at test.message.client.TestClient.testWebservice(TestClient.java:39) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:483) > at > org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) > at > org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) > at > org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) > at > org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) > at > org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) > at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) > at org.junit.runners.ParentRunner.run(ParentRunner.java:309) > at > org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) > at > org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) > Caused by: javax.xml.bind.UnmarshalException > - with linked exception: > [com.ctc.wstx.exc.WstxIOException: Read timed out] > I have a Unit test where you can reproduce the issue easily. How can I > provide you the Unit tests? > Is there any maximum size for the SOAP Messages? > Same code was working on a previous JVM. > Not sure whether is a bug or not, but it stop working with java 8. > I would appreciate your help. > Thanks in advance. -- This message was sent by Atlassian JIRA (v6.3.4#6332)