From 256ae988c98000484855e23aa4d0c1a0fe5fb3bb Mon Sep 17 00:00:00 2001 From: David McKnight Date: Fri, 15 Aug 2008 16:30:13 +0000 Subject: [PATCH] [243921] FTP subsystem timeout causes error when expanding folders --- .../internal/services/files/ftp/FTPService.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/rse/plugins/org.eclipse.rse.services.files.ftp/src/org/eclipse/rse/internal/services/files/ftp/FTPService.java b/rse/plugins/org.eclipse.rse.services.files.ftp/src/org/eclipse/rse/internal/services/files/ftp/FTPService.java index e1c30728b41..b20ea18bfa6 100644 --- a/rse/plugins/org.eclipse.rse.services.files.ftp/src/org/eclipse/rse/internal/services/files/ftp/FTPService.java +++ b/rse/plugins/org.eclipse.rse.services.files.ftp/src/org/eclipse/rse/internal/services/files/ftp/FTPService.java @@ -79,6 +79,7 @@ * Martin Oberhuber (Wind River) - [235463][ftp][dstore] Incorrect case sensitivity reported on windows-remote * Martin Oberhuber (Wind River) - [235360][ftp][ssh][local] Return proper "Root" IHostFile * Martin Oberhuber (Wind River) - [240738][ftp] Incorrect behavior on getFile for non-existing folder + * David McKnight (IBM) - [243921] FTP subsystem timeout causes error when expanding folders ********************************************************************************/ package org.eclipse.rse.internal.services.files.ftp; @@ -102,6 +103,7 @@ import java.util.Map; import org.apache.commons.net.ftp.FTP; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPClientConfig; +import org.apache.commons.net.ftp.FTPConnectionClosedException; import org.apache.commons.net.ftp.FTPFile; import org.apache.commons.net.ftp.FTPReply; import org.eclipse.core.runtime.IProgressMonitor; @@ -678,8 +680,19 @@ public class FTPService extends AbstractFileService implements IFTPService, IFil { boolean isConnected = false; - if(_ftpClient!=null) { + if(_ftpClient!=null) { isConnected = _ftpClient.isConnected(); + if (isConnected){ // make sure that there hasn't been a timeout + try { + _ftpClient.noop(); + } + catch (FTPConnectionClosedException e){ + return false; + } + catch (IOException e2){ + return false; + } + } } return isConnected;