The FTP server had closed the connection due to idling. I expected 
isAvailable() would return false in that case, but it returned true. So, my 
program continued and called listFiles(). It threw an 
FTPConnectionClosedException or a broken PIPE socket exception.

Sending a NOOP before each command would be inefficient. If I see a famous FTP 
client like FileZilla, I can see that it immediately recognises server 
disconnection and displays the disconnection message (such as 421 Connection 
timed out).

I understand that Apache Commons FTP is only for basic protocol, but since many 
users would want that feature (immediate recognition for server disconnection), 
I wish there was a code snippet for that. I am going to experiment it on my own 
by extending the FTPClient class.

PS: I am sorry for the wrong tag in the subject.

> Sent: Wednesday, May 11, 2016 at 11:32 PM
> From: sebb <seb...@gmail.com>
> To: "Commons Users List" <user@commons.apache.org>
> Subject: [NET] was: [FTP] No disconnected event? Should poll periodically?
>
> I assume you are referring to Commons NET here.
> 
> You should probably use isAvailable() instead as that performs more checks.
> 
> However as the method Javadoc says, the only sure way to check if the
> connection is still available is to use it.
> 
> Commons NET does not provide idle connection checking and so there is
> no event for it.
> 
> You will need to implement your own checks, e.g. using sendNoOp()
> every so often.
> Care must be taken to ensure that you only send such probes when the
> connnection is not being used otherwise you might interfere with other
> commands.
> 
> Note that Commons NET is only intended to provide basic access to
> Internet protocols.
> For example it is not intended to replace a full FTP Client, merely to
> provide some building blocks.
> 
> On 11 May 2016 at 15:09, Mailing User <mailingl...@mail.com> wrote:
> > I think the connection to a FTP server can be lost. Reasons can be, network 
> > disconnection or client idling.
> >
> > If that happens, can I be notified of the disconnection? I cannot find any 
> > "event" for that. Should I keep polling the state by periodically calling 
> > "isConnected()"?
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: user-unsubscr...@commons.apache.org
> > For additional commands, e-mail: user-h...@commons.apache.org
> >
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscr...@commons.apache.org
> For additional commands, e-mail: user-h...@commons.apache.org
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@commons.apache.org
For additional commands, e-mail: user-h...@commons.apache.org

Reply via email to