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

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: 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
>
> 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 is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to