You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "xiongmaozhijin (Jira)" <ji...@apache.org> on 2021/07/13 03:33:00 UTC

[jira] [Commented] (NET-419) Not possible to call FTPClient.abort() method correctly

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

xiongmaozhijin commented on NET-419:
------------------------------------

I had the same problem, but I found that if the code was written like this, it would not block:

 

final FtpClient ftpClient;

// ....

final OutputStream os = ftpClient.storeFileStream(remote);

while (condition) {

    if (condition) break;

    os.write(......);

}

// it do close outputstream and socket first

if (os != null) {

    os.close();

}

ftpClient.abort();

ftpClient.logout();

ftpClient.disconnect();

 

> Not possible to call FTPClient.abort() method correctly
> -------------------------------------------------------
>
>                 Key: NET-419
>                 URL: https://issues.apache.org/jira/browse/NET-419
>             Project: Commons Net
>          Issue Type: Bug
>          Components: FTP
>    Affects Versions: 3.0
>         Environment: java version "1.6.0_26"
> Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
> Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)
> Linux cattie 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:07:17 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
>            Reporter: Tomas Mysik
>            Priority: Major
>         Attachments: ftp-synchro.diff
>
>
> Unfortunately, it seems that there are difficulties of using FTPClient.abort()
> method [1][2]. Also, it is really not clear how the abort() method should be
> called/used at all - if from another thread (as I would expect) then there is a problem with
> thread-safety: FTPClient itself is not thread-safe so it means that some
> custom lock/monitor must be used; but this lock will prevent calling abort() on
> the FTPClient while it is downloading/uploading file since file upload/download
> itself is blocking...
> If I'm wrong and the abort() method works then an example in Javadoc would be more than welcome.
> Thanks a lot.
> [1] http://apache-commons.680414.n4.nabble.com/Net-FTPClient-abort-problem-td739542.html
> [2] http://www.tikalk.com/java/forums/apache-ftp-client-abort-transfer



--
This message was sent by Atlassian Jira
(v8.3.4#803005)