1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-15 13:05:22 +02:00

[192610] EFS operations on an FTP connection make Eclipse freeze

This commit is contained in:
Javier Montalvo Orus 2007-07-31 17:08:40 +00:00
parent fbc6113739
commit 0689688bfa

View file

@ -51,6 +51,7 @@
* Javier Montalvo Orus (Symbian) - [197105] Directory listing fails on Solaris when special devices are in a directory * Javier Montalvo Orus (Symbian) - [197105] Directory listing fails on Solaris when special devices are in a directory
* Javier Montalvo Orus (Symbian) - [197758] Unix symbolic links are not classified as file vs. folder * Javier Montalvo Orus (Symbian) - [197758] Unix symbolic links are not classified as file vs. folder
* Javier Montalvo Orus (Symbian) - [198182] FTP export problem: RSEF8057E: Error occurred while exporting FILENAME: Operation failed. File system input or output error * Javier Montalvo Orus (Symbian) - [198182] FTP export problem: RSEF8057E: Error occurred while exporting FILENAME: Operation failed. File system input or output error
* Javier Montalvo Orus (Symbian) - [192610] EFS operations on an FTP connection make Eclipse freeze
********************************************************************************/ ********************************************************************************/
package org.eclipse.rse.internal.services.files.ftp; package org.eclipse.rse.internal.services.files.ftp;
@ -1201,20 +1202,28 @@ public class FTPService extends AbstractFileService implements IFileService, IFT
} }
} }
FTPClient ftpClient = getFTPClient();
InputStream stream = null; InputStream stream = null;
try { if(_commandMutex.waitForLock(monitor, Long.MAX_VALUE))
{
setFileType(isBinary); FTPClient ftpClient = getFTPClient();
stream = new FTPBufferedInputStream(ftpClient.retrieveFileStream(remoteFile), ftpClient); try {
}
catch (Exception e) {
throw new RemoteFileIOException(e); ftpClient.changeWorkingDirectory(remoteParent);
setFileType(isBinary);
stream = new FTPBufferedInputStream(ftpClient.retrieveFileStream(remoteFile), ftpClient);
}
catch (Exception e) {
throw new RemoteFileIOException(e);
}finally {
_commandMutex.release();
}
} }
return stream; return stream;
} }
@ -1232,20 +1241,24 @@ public class FTPService extends AbstractFileService implements IFileService, IFT
} }
} }
FTPClient ftpClient = getFTPClient();
OutputStream stream = null; OutputStream stream = null;
try { if(_commandMutex.waitForLock(monitor, Long.MAX_VALUE))
{
ftpClient.changeWorkingDirectory(remoteParent); FTPClient ftpClient = getFTPClient();
setFileType(isBinary); try {
stream = new FTPBufferedOutputStream(ftpClient.storeFileStream(remoteFile), ftpClient); ftpClient.changeWorkingDirectory(remoteParent);
} setFileType(isBinary);
catch (Exception e) { stream = new FTPBufferedOutputStream(ftpClient.storeFileStream(remoteFile), ftpClient);
throw new RemoteFileIOException(e); }
catch (Exception e) {
throw new RemoteFileIOException(e);
}finally {
_commandMutex.release();
}
} }
return stream; return stream;