commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sebb (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (NET-552) SocketTimeoutException connecting a FTP server via an HTTP Proxy
Date Wed, 07 Jan 2015 16:25:35 GMT

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

Sebb commented on NET-552:
--------------------------

Only just got around to looking at the patch.

Although it applies cleanly, the code does not compile.
There appears to be some text missing in the FTPClient part of the patch.
Is there supposed to be a closing brace between the following?

{code}
super._connectAction_(); // sets up _input_ and _output_
{code}
and
{code}
public void _connectAction_(Reader socketIsReader) throws IOException {
{code}

Also, why is the above method public rather than protected?

> SocketTimeoutException connecting a FTP server via an HTTP Proxy
> ----------------------------------------------------------------
>
>                 Key: NET-552
>                 URL: https://issues.apache.org/jira/browse/NET-552
>             Project: Commons Net
>          Issue Type: Bug
>          Components: FTP
>    Affects Versions: 3.3
>         Environment: All
>            Reporter: Quentin Devriendt
>              Labels: FTP, HTTP, Proxy, SocketTimeout
>         Attachments: FtpOverHttpProxy.patch
>
>
> Randomly, we're experiencing SocketTimoutException when we connect an FTP via an Http
Proxy :
> {noformat}
> java.io.IOException: Timed out waiting for initial connect reply
> 	at org.apache.commons.net.ftp.FTP._connectAction_(FTP.java:403)
> 	at org.apache.commons.net.ftp.FTPClient._connectAction_(FTPClient.java:931)
> 	at org.apache.commons.net.ftp.FTPClient._connectAction_(FTPClient.java:925)
> 	at org.apache.commons.net.ftp.FTPHTTPClient.connect(FTPHTTPClient.java:144)
> Caused by: java.net.SocketTimeoutException: Read timed out
> 	at java.net.SocketInputStream.socketRead0(Native Method)
> 	at java.net.SocketInputStream.read(SocketInputStream.java:150)
> 	at java.net.SocketInputStream.read(SocketInputStream.java:121)
> 	at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284)
> 	at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)
> 	at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
> 	at java.io.InputStreamReader.read(InputStreamReader.java:184)
> 	at java.io.BufferedReader.fill(BufferedReader.java:161)
> 	at java.io.BufferedReader.read(BufferedReader.java:182)
> 	at org.apache.commons.net.io.CRLFLineReader.readLine(CRLFLineReader.java:58)
> 	at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:315)
> 	at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:295)
> 	at org.apache.commons.net.ftp.FTP._connectAction_(FTP.java:397)
> 	... 6 more
> {noformat}
> After analysis, I think the problem is that commons-net opens 2 BufferedReader on the
same InputStream : first in the FTPHTTPClient.tunnelHandshake method, and the second in FTP._connectAction()
method.
> If the first BufferedReader reads all datas in the socket, the second waits until SocketTimeout.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message