mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-03 07:05:24 +02:00
[203490] Fix NPE in SftpService.getUserHome()
This commit is contained in:
parent
04da14a895
commit
eec09ac96e
2 changed files with 17 additions and 7 deletions
|
@ -60,6 +60,7 @@
|
|||
* Javier Montalvo Orus (Symbian) - [199243] Renaming a file in an FTP-based EFS folder hangs all of Eclipse
|
||||
* Martin Oberhuber (Wind River) - [203306] Fix Deadlock comparing two files on FTP
|
||||
* Martin Oberhuber (Wind River) - [204669] Fix ftp path concatenation on systems using backslash separator
|
||||
* Martin Oberhuber (Wind River) - [203490] Fix NPE in FTPService.getUserHome()
|
||||
********************************************************************************/
|
||||
|
||||
package org.eclipse.rse.internal.services.files.ftp;
|
||||
|
@ -888,9 +889,15 @@ public class FTPService extends AbstractFileService implements IFileService, IFT
|
|||
*/
|
||||
public IHostFile getUserHome()
|
||||
{
|
||||
if (_userHome==null) {
|
||||
//As per bug 204710, this may be called before we are connected.
|
||||
//Returning null in this case is safest, see also SftpFileService.
|
||||
return null;
|
||||
}
|
||||
return new FTPHostFile("",_userHome,true,true,0,0,true); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
* @see org.eclipse.rse.services.files.IFileService#getRoots(org.eclipse.core.runtime.IProgressMonitor)
|
||||
|
|
|
@ -64,7 +64,7 @@ import org.eclipse.rse.services.files.RemoteFileSecurityException;
|
|||
public class SftpFileService extends AbstractFileService implements IFileService, ISshService
|
||||
{
|
||||
|
||||
private class SftpBufferedInputStream extends BufferedInputStream {
|
||||
private static class SftpBufferedInputStream extends BufferedInputStream {
|
||||
|
||||
private ChannelSftp channel;
|
||||
|
||||
|
@ -99,7 +99,7 @@ public class SftpFileService extends AbstractFileService implements IFileService
|
|||
}
|
||||
}
|
||||
|
||||
private class SftpBufferedOutputStream extends BufferedOutputStream {
|
||||
private static class SftpBufferedOutputStream extends BufferedOutputStream {
|
||||
|
||||
private ChannelSftp channel;
|
||||
|
||||
|
@ -574,7 +574,7 @@ public class SftpFileService extends AbstractFileService implements IFileService
|
|||
}
|
||||
|
||||
public IHostFile getUserHome() {
|
||||
//TODO Assert: this is only called after we are connected
|
||||
//As per bug 204710, this may be called before we are connected
|
||||
if (fUserHome!=null) {
|
||||
int lastSlash = fUserHome.lastIndexOf('/');
|
||||
String name = fUserHome.substring(lastSlash + 1);
|
||||
|
@ -582,12 +582,15 @@ public class SftpFileService extends AbstractFileService implements IFileService
|
|||
try {
|
||||
return getFile(parent, name, null);
|
||||
} catch(SystemMessageException e) {
|
||||
//Error getting user home -> return a default below
|
||||
//Error getting user home -> return a handle
|
||||
//Returning the home path as a Root is the safest we can do, since it will
|
||||
//let users know what the home path is, and the "My Home" filter will be
|
||||
//set to correct target. See also bug 204710.
|
||||
return new SftpHostFile("", fUserHome, true, true, false, 0, 0); //$NON-NLS-1$
|
||||
}
|
||||
}
|
||||
//Could not determine user home
|
||||
//return new SftpHostFile(".",".",true,false,false,0,0); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
return new SftpHostFile("/", "/", true, true, false, 0, 0); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
//Bug 203490, bug 204710: Could not determine user home
|
||||
return null;
|
||||
}
|
||||
|
||||
public IHostFile[] getRoots(IProgressMonitor monitor) {
|
||||
|
|
Loading…
Add table
Reference in a new issue