On Tue, Apr 21, 2009 at 05:01:45PM -0400, Sam Berlin wrote: > > > > > > Is using a ResponseHandler the reason why the HttpEntity response is > > consumed eagerly in DefaultHttpClient? > > > Yes. I haven't used ResponseHandler's myself, but what I remember from > their introduction is that the concept is that a ResponseHandler takes an > HttpResponse and converts it to an Object. In order to construct the > object, it must read the response. The idea behind ResponseHandler is that > it has the "read the response & perform some logic based on it" built in, so > that you can reuse the logic easily. If you have no need to perform any > action based on the response, don't supply a ResponseHandler. If you do > have some action that would be performed on a response, it should all be > done within the ResponseHandler's handleResponse. > > I'm not sure I fully understand the stack trace, though -- is that from > after execute on HttpClient has returned, or during it? Is the exception > being triggered within a ResponseHandler's handleResponse method? If so, > this may be a different issue. HttpClient 4 has an "EofSensorInputStream" > that will automatically close the stream once you read to the end of the > response's content length. This may be an issue that the Decoder.peek is > trying to peek beyond the end of the stream. > > Sam > >
I think the cause of the problem is that the StAX builder is trying to read from a closed input stream for some reason. I guess HttpClient 3.1 was more lenient about such cases. You should review and possibly revise the test case. Oleg > > > > > > See I/O exception i'm currently getting: > > > > java.io.IOException: Attempted read from closed stream. > > at > > org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:145) > > at > > org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:175) > > at > > org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:178) > > at com.sun.xml.fastinfoset.Decoder.peek(Decoder.java:1817) > > at > > com.sun.xml.fastinfoset.Decoder._isFastInfosetDocument(Decoder.java:1869) > > at com.sun.xml.fastinfoset.Decoder.decodeHeader(Decoder.java:1262) > > at > > com.sun.xml.fastinfoset.stax.StAXDocumentParser.next(StAXDocumentParser.java:220) > > at > > org.apache.axiom.om.impl.builder.StAXOMBuilder.parserNext(StAXOMBuilder.java:506) > > at > > org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:161) > > at > > org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.getSOAPEnvelope(StAXSOAPModelBuilder.java:156) > > at > > org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.<init>(StAXSOAPModelBuilder.java:105) > > at > > org.apache.axis2.fastinfoset.FastInfosetBuilder.processDocument(FastInfosetBuilder.java:57) > > at > > org.apache.axis2.transport.TransportUtils.createDocumentElement(TransportUtils.java:164) > > at > > org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:112) > > at > > org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:88) > > at > > org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:353) > > at > > org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:416) > > at > > org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:228) > > at > > org.apache.axis2.client.OperationClient.execute(OperationClient.java:163) > > at > > org.apache.axis2.fastinfoset.SimpleAddServiceStub.addStrings(SimpleAddServiceStub.java:740) > > at > > org.apache.axis2.fastinfoset.SimpleAddServiceClient.addStrings(SimpleAddServiceClient.java:104) > > at > > org.apache.axis2.fastinfoset.FastInfosetTest.testAdd(FastInfosetTest.java:49) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > > at java.lang.reflect.Method.invoke(Method.java:585) > > at junit.framework.TestCase.runTest(TestCase.java:168) > > at junit.framework.TestCase.runBare(TestCase.java:134) > > at junit.framework.TestResult$1.protect(TestResult.java:110) > > at junit.framework.TestResult.runProtected(TestResult.java:128) > > at junit.framework.TestResult.run(TestResult.java:113) > > at junit.framework.TestCase.run(TestCase.java:124) > > at junit.framework.TestSuite.runTest(TestSuite.java:232) > > at junit.framework.TestSuite.run(TestSuite.java:227) > > at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24) > > at junit.extensions.TestSetup$1.protect(TestSetup.java:23) > > at junit.framework.TestResult.runProtected(TestResult.java:128) > > at junit.extensions.TestSetup.run(TestSetup.java:27) > > at > > org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:81) > > at > > org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38) > > at > > org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) > > at > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) > > at > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) > > at > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) > > at > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) > > Apr 21, 2009 3:43:11 PM org.apache.axis2.deployment.DeploymentEngine > > prepareRepository > > > > Please advise, > > Thanks, > > -Guillaume > > > > > > > > ____________________________________________________________________________________________________ > > This electronic mail (including any attachments) may contain information > > that is privileged, confidential, and/or otherwise protected from disclosure > > to anyone other than its intended recipient(s). Any dissemination or use of > > this electronic email or its contents (including any attachments) by persons > > other than the intended recipient(s) is strictly prohibited. If you have > > received this message in error, please notify us immediately by reply email > > so that we may correct our internal records. Please then delete the original > > message (including any attachments) in its entirety. Thank you. > > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
