hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Oleg Kalnichevski (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HTTPCORE-241) "Socket Exception: Bad file number" when passing chunked entity back to response
Date Wed, 17 Nov 2010 22:45:13 GMT

    [ https://issues.apache.org/jira/browse/HTTPCORE-241?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12933218#action_12933218

Oleg Kalnichevski commented on HTTPCORE-241:


Android ships with HttpCore 4.0-beta2, which is a fairly outdated. My recommendation would
be to get your proxy working in the JSE environment with the latest Oracle's JRE (>
and the latest release of HttpCore (4.1) and then port it to Android, once sure the HTTP protocol
code works as intended. 

If you could reproduce the problem in the JSE environment with the latest HttpCore version,
I'd be much easier to get it resolved.

There is a sample of a trivial reverse proxy [1] which you may want to take a look at. When
testing the sample (which admittedly was a while ago) I had no issue with chunk coding.


[1] http://svn.apache.org/repos/asf/httpcomponents/httpcore/tags/4.1/httpcore/src/examples/org/apache/http/examples/ElementalReverseProxy.java

> "Socket Exception: Bad file number" when passing chunked entity back to response
> --------------------------------------------------------------------------------
>                 Key: HTTPCORE-241
>                 URL: https://issues.apache.org/jira/browse/HTTPCORE-241
>             Project: HttpComponents HttpCore
>          Issue Type: Bug
>          Components: HttpCore
>         Environment: Android Froyo 2.2 (FRF50)
> Running as Root on a Nexus One
> I think Android Froyo is running HttpCore 4.0 but not sure. I tried to dump VersionInfo
on several packages but didn't get any info returned.
>            Reporter: John B. Hansen
> I'm a new user with HttpCore and didn't know where else to turn for support.. And, this
problem may be my fault...
> Just looking for some suggestions...
> I'm doing a ProxyServer by using a variation of ElementalHttpServer  to send a request
to proxy code.
> The proxy code then makes an actual client request to the target site. The proxy request
gets a response
> back and sets the statusline, headers, and entity back in the original response in the
 handler  (which sends
>  it back to the Browser).
> For simple HTML sites, this works fine. But, on chunked sites (transfer-encoding=chunked)
e.g. www.google.com 
> I'm getting a "Socket Exception: Bad File Number" following the first response back to
the browser i.e.
> 11-17 13:48:05.307: ERROR/MTHttpProxy:(2767): proxyResponse entity is CHUNKED
> 11-17 13:48:05.307: ERROR/MTHttpProxy:(2767): proxyResponse entity is STREAMING
> 11-17 13:48:05.307: ERROR/MTHttpProxy:(2767): ======================= Done Handling Request-Response
> 11-17 13:48:05.317: ERROR/MTHttpProxy:(2767): ERROR: I/O error from call to handle request:
Bad file number
> 11-17 13:48:05.317: WARN/System.err(2767): java.net.SocketException: Bad file number
> 11-17 13:48:05.327: WARN/System.err(2767):     at org.apache.harmony.luni.platform.OSNetworkSystem.readSocketImpl(Native
> 11-17 13:48:05.327: WARN/System.err(2767):     at org.apache.harmony.luni.platform.OSNetworkSystem.read(OSNetworkSystem.java:358)
> 11-17 13:48:05.327: WARN/System.err(2767):     at org.apache.harmony.luni.net.PlainSocketImpl.read(PlainSocketImpl.java:561)
> 11-17 13:48:05.327: WARN/System.err(2767):     at org.apache.harmony.luni.net.SocketInputStream.read(SocketInputStream.java:88)
> 11-17 13:48:05.327: WARN/System.err(2767):     at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:103)
> 11-17 13:48:05.327: WARN/System.err(2767):     at org.apache.http.impl.io.AbstractSessionInputBuffer.read(AbstractSessionInputBuffer.java:134)
> 11-17 13:48:05.337: WARN/System.err(2767):     at org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:161)
> 11-17 13:48:05.337: WARN/System.err(2767):     at org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:175)
> 11-17 13:48:05.337: WARN/System.err(2767):     at org.apache.http.entity.BasicHttpEntity.writeTo(BasicHttpEntity.java:129)
> 11-17 13:48:05.337: WARN/System.err(2767):     at org.apache.http.impl.entity.EntitySerializer.serialize(EntitySerializer.java:97)
> 11-17 13:48:05.337: WARN/System.err(2767):     at org.apache.http.impl.AbstractHttpServerConnection.sendResponseEntity(AbstractHttpServerConnection.java:182)
> 11-17 13:48:05.337: WARN/System.err(2767):     at org.apache.http.protocol.HttpService.handleRequest(HttpService.java:209)
> 11-17 13:48:05.337: WARN/System.err(2767):     at com.test.MultiHttpProxy$WorkerThread.run(MultiHttpProxy.java:446)
> BTW: I have no reason to suspect bugs in the Chunk handling. I'm just not seeing this
on the few non-chunked sites I've tested.
> Any ideas what could be wrong or how to debug? Any advice appreciated....Thanks!
> PS, if anyone can clarify the version of HttpComponents on Android 2.2 also, that would
be great. Thx.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org

View raw message