You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Sebb (JIRA)" <ji...@apache.org> on 2011/03/02 22:46:37 UTC

[jira] Resolved: (NET-270) Incorrect error handling in method initiateListParsing of FTPClient

     [ https://issues.apache.org/jira/browse/NET-270?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sebb resolved NET-270.
----------------------

       Resolution: Fixed
    Fix Version/s: 3.0

Fixed by calling Util.closeQuietly(socket); instead of socket.close() in private FTPListParseEngine initiateListParsing

> Incorrect error handling in method initiateListParsing of FTPClient
> -------------------------------------------------------------------
>
>                 Key: NET-270
>                 URL: https://issues.apache.org/jira/browse/NET-270
>             Project: Commons Net
>          Issue Type: Bug
>          Components: FTP
>    Affects Versions: 2.0
>         Environment: XP - java version "1.5.0_09" - FileZilla server 0.9.30beta
>            Reporter: Gilles Gaillard
>             Fix For: 3.0
>
>         Attachments: FTPClientUnitTest.java
>
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> In method initiateListParsing of FTPClient, errors when opening the data connection are not correctly handled.
> This leads to ignore message delivered by the server and further operation with the FTPClient instance are not valid.
> As an example, considere the attached unit test. When such an error is met, using the _sendNoOp_ command returns false.
> Here is an output of the test:
> {noformat}
> F:\dev\jakarta\>run org.apache.commons.vfs.provider.ftp.FTPClientUnitTest 10.0.0.x 21 /GILLES/source usr pass 5500
> Ignoring error when creating client at iteration: 1152
> Error at iteration: 1155
> java.net.SocketTimeoutException: Accept timed out
>         at java.net.PlainSocketImpl.socketAccept(Native Method)
>         at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
>         at java.net.ServerSocket.implAccept(ServerSocket.java:450)
>         at java.net.ServerSocket.accept(ServerSocket.java:421)
>         at org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:489)
>         at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:2296)
>         at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:2269)
>         at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2046)
>         at org.apache.commons.vfs.provider.ftp.FTPClientUnitTest.testConnectTimeoutInList(FTPClientUnitTest.java:70)
>         at org.apache.commons.vfs.provider.ftp.FTPClientUnitTest.main(FTPClientUnitTest.java:110)
> Exception in thread "main" junit.framework.AssertionFailedError: NOOP failed at iteration 1155
>         at junit.framework.Assert.fail(Assert.java:47)
>         at junit.framework.Assert.assertTrue(Assert.java:20)
>         at org.apache.commons.vfs.provider.ftp.FTPClientUnitTest.testConnectTimeoutInList(FTPClientUnitTest.java:75)
>         at org.apache.commons.vfs.provider.ftp.FTPClientUnitTest.main(FTPClientUnitTest.java:110)
> {noformat}

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira