hc-httpclient-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Oleg Kalnichevski <ol...@apache.org>
Subject Re: Weird problems with httpclient 4.0beta2 and httpcore 4.0
Date Wed, 22 Apr 2009 10:01:51 GMT
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: httpclient-users-unsubscribe@hc.apache.org
For additional commands, e-mail: httpclient-users-help@hc.apache.org


Mime
View raw message