commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bogdan Drozdowski (JIRA)" <>
Subject [jira] [Commented] (NET-419) Not possible to call FTPClient.abort() method correctly
Date Sat, 03 Sep 2011 15:46:10 GMT


Bogdan Drozdowski commented on NET-419:

 No need to ping us. We see your message. We may not reply immediately, but your issue is
still open.
 The problem is that it's not that easy just to provide thread-safety. If the methods are
synchronized, you won't be able to call abort() when another method is executing (like retrieveFile()).
 Perhaps just command sending should be synchronized (to synchronize the input/output buffers),
but that won't always solve the problem, because some commands (like file send/retrieve) have
two replies and the client needs to wait for the second one, so it needs to be in the synchronized
block while the operation you want to abort is being performed. Right now we dont' have synchronized
blocks, so you can call abort() at any time (and mostly it will work). If we had everything
synchronized, you wouldn't be able to call abort() during the operation at all. So even if
the current solution is not perfect, the synchronized solution is even worse. This needs a
re-think of what should be done.

> Not possible to call FTPClient.abort() method correctly
> -------------------------------------------------------
>                 Key: NET-419
>                 URL:
>             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
> 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
> 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
> Thanks a lot.
> [1]
> [2]

This message is automatically generated by JIRA.
For more information on JIRA, see:


View raw message