mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-25 18:05:33 +02:00
[227135] Cryptic exception when sftp-server is missing
This commit is contained in:
parent
1aae9acec9
commit
c3a6d1600f
11 changed files with 111 additions and 71 deletions
|
@ -1,16 +1,17 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2006, 2008 Wind River Systems, Inc. and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Martin Oberhuber (Wind River) - initial API and implementation
|
||||
* Martin Oberhuber (Wind River) - copy dialogs from team.cvs.ui
|
||||
* Copyright (c) 2006, 2009 Wind River Systems, Inc. and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Martin Oberhuber (Wind River) - initial API and implementation
|
||||
* Martin Oberhuber (Wind River) - copy dialogs from team.cvs.ui
|
||||
* David McKnight (IBM) - [216252] [api][nls] Resource Strings specific to subsystems should be moved from rse.ui into files.ui / shells.ui / processes.ui where possible
|
||||
* David McKnight (IBM) - [220547] [api][breaking] SimpleSystemMessage needs to specify a message id and some messages should be shared
|
||||
* Johnson Ma (Wind River) - [218880] Add UI setting for ssh keepalives
|
||||
* Martin Oberhuber (Wind River) - [227135] Cryptic exception when sftp-server is missing
|
||||
*******************************************************************************/
|
||||
|
||||
package org.eclipse.rse.internal.connectorservice.ssh;
|
||||
|
@ -27,10 +28,11 @@ public class SshConnectorResources extends NLS {
|
|||
|
||||
public static String SshConnectorService_Name;
|
||||
public static String SshConnectorService_Description;
|
||||
|
||||
|
||||
public static String SshConnectorService_ErrorDisconnecting;
|
||||
public static String SshConnectorService_Info;
|
||||
public static String SshConnectorService_Warning;
|
||||
public static String SshConnectorService_Missing_sshd;
|
||||
|
||||
//These are from org.eclipse.team.cvs.ui.CVSUIMessages
|
||||
public static String UserValidationDialog_required;
|
||||
|
@ -44,9 +46,9 @@ public class SshConnectorResources extends NLS {
|
|||
|
||||
public static String KeyboardInteractiveDialog_message;
|
||||
public static String KeyboardInteractiveDialog_labelConnection;
|
||||
|
||||
|
||||
public static String SSH_SETTINGS_LABEL;
|
||||
public static String PROPERTY_LABEL_TIMEOUT;
|
||||
public static String PROPERTY_LABEL_KEEPALIVE;
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
################################################################################
|
||||
# Copyright (c) 2006, 2008 Wind River Systems, Inc. and others.
|
||||
# Copyright (c) 2006, 2009 Wind River Systems, Inc. and others.
|
||||
# All rights reserved. This program and the accompanying materials
|
||||
# are made available under the terms of the Eclipse Public License v1.0
|
||||
# which accompanies this distribution, and is available at
|
||||
|
@ -11,6 +11,7 @@
|
|||
# David McKnight (IBM) - [216252] [api][nls] Resource Strings specific to subsystems should be moved from rse.ui into files.ui / shells.ui / processes.ui where possible
|
||||
# David McKnight (IBM) - [220547] [api][breaking] SimpleSystemMessage needs to specify a message id and some messages should be shared
|
||||
# Johnson Ma (Wind River) - [218880] Add UI setting for ssh keepalives
|
||||
# Martin Oberhuber (Wind River) - [227135] Cryptic exception when sftp-server is missing
|
||||
################################################################################
|
||||
|
||||
# NLS_MESSAGEFORMAT_VAR
|
||||
|
@ -22,6 +23,7 @@ SshConnectorService_Description=SSH Connector Service Description
|
|||
SshConnectorService_ErrorDisconnecting=ConnectionStatusListener: Error disconnecting
|
||||
SshConnectorService_Warning=Warning
|
||||
SshConnectorService_Info=Info
|
||||
SshConnectorService_Missing_sshd=Failed to connect sshd on "{0}:{1}"
|
||||
|
||||
#These are from cvs.ui/messages.properties
|
||||
UserValidationDialog_required=Password Required
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2006, 2008 Wind River Systems, Inc. and others.
|
||||
* Copyright (c) 2006, 2009 Wind River Systems, Inc. and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
*
|
||||
* Contributors:
|
||||
* Martin Oberhuber (Wind River) - initial API and implementation
|
||||
* David Dykstal (IBM) - 168977: refactoring IConnectorService and ServerLauncher hierarchies
|
||||
|
@ -18,6 +18,7 @@
|
|||
* David McKnight (IBM) - [216252] [api][nls] Resource Strings specific to subsystems should be moved from rse.ui into files.ui / shells.ui / processes.ui where possible
|
||||
* David McKnight (IBM) - [220547] [api][breaking] SimpleSystemMessage needs to specify a message id and some messages should be shared
|
||||
* Johnson Ma (Wind River) - [218880] Add UI setting for ssh keepalives
|
||||
* Martin Oberhuber (Wind River) - [227135] Cryptic exception when sftp-server is missing
|
||||
*******************************************************************************/
|
||||
|
||||
package org.eclipse.rse.internal.connectorservice.ssh;
|
||||
|
@ -60,6 +61,7 @@ import org.eclipse.rse.services.clientserver.messages.CommonMessages;
|
|||
import org.eclipse.rse.services.clientserver.messages.ICommonMessageIds;
|
||||
import org.eclipse.rse.services.clientserver.messages.SimpleSystemMessage;
|
||||
import org.eclipse.rse.services.clientserver.messages.SystemMessage;
|
||||
import org.eclipse.rse.services.clientserver.messages.SystemOperationFailedException;
|
||||
import org.eclipse.rse.ui.RSEUIPlugin;
|
||||
import org.eclipse.rse.ui.SystemBasePlugin;
|
||||
import org.eclipse.rse.ui.messages.SystemMessageDialog;
|
||||
|
@ -192,7 +194,8 @@ public class SshConnectorService extends StandardConnectorService implements ISs
|
|||
if(e.toString().indexOf("Auth cancel")>=0) { //$NON-NLS-1$
|
||||
throw new OperationCanceledException();
|
||||
}
|
||||
throw e;
|
||||
throw new SystemOperationFailedException(Activator.PLUGIN_ID, NLS.bind(SshConnectorResources.SshConnectorService_Missing_sshd,
|
||||
host, Integer.toString(getSshPort())), e);
|
||||
}
|
||||
userInfo.connectionMade();
|
||||
fSessionLostHandler = new SessionLostHandler(this);
|
||||
|
@ -272,7 +275,7 @@ public class SshConnectorService extends StandardConnectorService implements ISs
|
|||
* Handle session-lost events.
|
||||
* This is generic for any sort of connector service.
|
||||
* Most of this is extracted from dstore's ConnectionStatusListener.
|
||||
*
|
||||
*
|
||||
* TODO should be refactored to make it generally available, and allow
|
||||
* dstore to derive from it.
|
||||
*/
|
||||
|
|
|
@ -1,14 +1,15 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2006, 2009 Wind River Systems, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Martin Oberhuber (Wind River) - initial API and implementation
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Martin Oberhuber (Wind River) - initial API and implementation
|
||||
* Yu-Fen Kuo (MontaVista) - [170910] Integrate the TM Terminal View with RSE
|
||||
* Anna Dushistova (MontaVista) - [261478] Remove SshShellService, SshHostShell (or deprecate and schedule for removal in 3.2)
|
||||
* Martin Oberhuber (Wind River) - [227135] Cryptic exception when sftp-server is missing
|
||||
*******************************************************************************/
|
||||
|
||||
package org.eclipse.rse.internal.services.ssh;
|
||||
|
@ -18,24 +19,19 @@ import org.eclipse.osgi.util.NLS;
|
|||
public class SshServiceResources extends NLS {
|
||||
private static final String BUNDLE_NAME = "org.eclipse.rse.internal.services.ssh.SshServiceResources"; //$NON-NLS-1$
|
||||
|
||||
public static String SftpFileService_Error_download_size;
|
||||
|
||||
public static String SftpFileService_Error_upload_size;
|
||||
|
||||
public static String SshPlugin_Unexpected_Exception;
|
||||
|
||||
public static String SftpFileService_Name;
|
||||
public static String SftpFileService_Description;
|
||||
|
||||
public static String SftpFileService_Error_JschSessionLost;
|
||||
|
||||
public static String SftpFileService_Error_download_size;
|
||||
public static String SftpFileService_Error_upload_size;
|
||||
public static String SftpFileService_Error_no_sftp;
|
||||
public static String SftpFileService_Msg_Progress;
|
||||
|
||||
public static String SftpFileService_Name;
|
||||
public static String SshPlugin_Unexpected_Exception;
|
||||
|
||||
public static String SshTerminalService_Name;
|
||||
|
||||
public static String SshTerminalService_Description;
|
||||
|
||||
|
||||
static {
|
||||
// initialize resource bundle
|
||||
NLS.initializeMessages(BUNDLE_NAME, SshServiceResources.class);
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
# Martin Oberhuber (Wind River) - initial API and implementation
|
||||
# Yu-Fen Kuo (MontaVista) - [170910] Integrate the TM Terminal View with RSE
|
||||
# Anna Dushistova (MontaVista) - [261478] Remove SshShellService, SshHostShell (or deprecate and schedule for removal in 3.2)
|
||||
# Martin Oberhuber (Wind River) - [227135] Cryptic exception when sftp-server is missing
|
||||
################################################################################
|
||||
|
||||
# NLS_MESSAGEFORMAT_VAR
|
||||
|
@ -20,7 +21,8 @@ SftpFileService_Name=Ssh / Sftp File Service
|
|||
SftpFileService_Description=Access a remote file system via Ssh / Sftp protocol
|
||||
SftpFileService_Error_JschSessionLost=jsch session lost
|
||||
SftpFileService_Error_upload_size=Ssh upload: file size mismatch for {0}
|
||||
SftpFileService_Error_download_size=Ssh download: file size mismatch for {0}
|
||||
SftpFileService_Error_download_size=Ssh download: file size mismatch for {0}
|
||||
SftpFileService_Error_no_sftp=Failed to connect SFTP subsystem: Remote host may not have sftp-server installed
|
||||
SftpFileService_Msg_Progress={0,number,integer} KB of {1,number,integer} KB complete ({2,number,percent})
|
||||
|
||||
SshTerminalService_Name=SSH Terminal Service
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2006, 2008 Wind River Systems, Inc. and others.
|
||||
* Copyright (c) 2006, 2009 Wind River Systems, Inc. and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
|
@ -35,6 +35,7 @@
|
|||
* David McKnight (IBM) - [235472] [ssh] RSE doesn't show correct properties of the file system root ("/")
|
||||
* Martin Oberhuber (Wind River) - [238703] getFile() needs to lstat for consistency with internalFetch()
|
||||
* Martin Oberhuber (Wind River) - [237616][ssh] Dont perform forced setLastModified during upload
|
||||
* Martin Oberhuber (Wind River) - [227135] Cryptic exception when sftp-server is missing
|
||||
*******************************************************************************/
|
||||
|
||||
package org.eclipse.rse.internal.services.ssh.files;
|
||||
|
@ -82,6 +83,7 @@ import org.eclipse.rse.services.clientserver.messages.SystemLockTimeoutException
|
|||
import org.eclipse.rse.services.clientserver.messages.SystemMessage;
|
||||
import org.eclipse.rse.services.clientserver.messages.SystemMessageException;
|
||||
import org.eclipse.rse.services.clientserver.messages.SystemOperationCancelledException;
|
||||
import org.eclipse.rse.services.clientserver.messages.SystemOperationFailedException;
|
||||
import org.eclipse.rse.services.clientserver.messages.SystemUnexpectedErrorException;
|
||||
import org.eclipse.rse.services.files.AbstractFileService;
|
||||
import org.eclipse.rse.services.files.HostFilePermissions;
|
||||
|
@ -177,6 +179,8 @@ public class SftpFileService extends AbstractFileService implements ISshService,
|
|||
private static String defaultEncoding = new java.io.InputStreamReader(new java.io.ByteArrayInputStream(new byte[0])).getEncoding();
|
||||
/** Indicates the encoding that our JSch channel uses */
|
||||
private String fJSchChannelEncoding = defaultEncoding;
|
||||
private long fLastConnectFailureTime = 0;
|
||||
private static long CONNECT_RETRY_MILLIS = 10000; //re-try unsuccessful sftp connect attempt after 10 seconds
|
||||
|
||||
// public SftpFileService(SshConnectorService conn) {
|
||||
// fConnector = conn;
|
||||
|
@ -338,8 +342,11 @@ public class SftpFileService extends AbstractFileService implements ISshService,
|
|||
}
|
||||
|
||||
public void connect() throws SystemMessageException {
|
||||
Activator.trace("SftpFileService.connecting..."); //$NON-NLS-1$
|
||||
if (fLastConnectFailureTime > 0 && System.currentTimeMillis() - fLastConnectFailureTime < CONNECT_RETRY_MILLIS) {
|
||||
throw new SystemOperationFailedException(Activator.PLUGIN_ID, SshServiceResources.SftpFileService_Error_no_sftp);
|
||||
}
|
||||
try {
|
||||
Activator.trace("SftpFileService.connecting..."); //$NON-NLS-1$
|
||||
Session session = fSessionProvider.getSession();
|
||||
Channel channel=session.openChannel("sftp"); //$NON-NLS-1$
|
||||
channel.connect();
|
||||
|
@ -349,7 +356,8 @@ public class SftpFileService extends AbstractFileService implements ISshService,
|
|||
Activator.trace("SftpFileService.connected"); //$NON-NLS-1$
|
||||
} catch(Exception e) {
|
||||
Activator.trace("SftpFileService.connecting failed: "+e.toString()); //$NON-NLS-1$
|
||||
throw makeSystemMessageException(e);
|
||||
fLastConnectFailureTime = System.currentTimeMillis();
|
||||
throw new SystemOperationFailedException(Activator.PLUGIN_ID, SshServiceResources.SftpFileService_Error_no_sftp, e);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1118,13 +1126,13 @@ public class SftpFileService extends AbstractFileService implements ISshService,
|
|||
public void initService(IProgressMonitor monitor) {
|
||||
Activator.trace("SftpFileService.initService"); //$NON-NLS-1$
|
||||
super.initService(monitor);
|
||||
try
|
||||
{
|
||||
connect();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
}
|
||||
// try
|
||||
// {
|
||||
// connect();
|
||||
// }
|
||||
// catch (Exception e)
|
||||
// {
|
||||
// }
|
||||
}
|
||||
|
||||
public void uninitService(IProgressMonitor monitor) {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2003, 2008 IBM Corporation and others.
|
||||
* Copyright (c) 2003, 2009 IBM Corporation and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
|
@ -18,6 +18,7 @@
|
|||
* Xuan Chen (IBM) - [218491] ArchiveHandlerManager#cleanUpVirtualPath is messing up the file separators (with updated fix)
|
||||
* Johnson Ma (Wind River) - [195402] [api] add tar.gz archive support
|
||||
* Martin Oberhuber (Wind River) - [199854][api] Improve error reporting for archive handlers
|
||||
* Martin Oberhuber (Wind River) - [227135] Cryptic exception when sftp-server is missing
|
||||
*******************************************************************************/
|
||||
|
||||
package org.eclipse.rse.services.clientserver.archiveutils;
|
||||
|
@ -308,11 +309,11 @@ public class ArchiveHandlerManager
|
|||
catch (InvocationTargetException e)
|
||||
{
|
||||
//Throwable target = e.getCause();
|
||||
throw new SystemOperationFailedException(IClientServerConstants.PLUGIN_ID, "instantiate handler for " + file.getName(), e); //$NON-NLS-1$
|
||||
throw new SystemOperationFailedException(IClientServerConstants.PLUGIN_ID, "Failed to instantiate handler for " + file.getName(), e); //$NON-NLS-1$
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new SystemOperationFailedException(IClientServerConstants.PLUGIN_ID, "instantiate handler for " + file.getName(), e); //$NON-NLS-1$
|
||||
throw new SystemOperationFailedException(IClientServerConstants.PLUGIN_ID, "Failed to instantiate handler for " + file.getName(), e); //$NON-NLS-1$
|
||||
}
|
||||
_handlers.put(file, handler);
|
||||
return handler;
|
||||
|
@ -500,7 +501,7 @@ public class ArchiveHandlerManager
|
|||
|
||||
/**
|
||||
* Create an empty archive
|
||||
*
|
||||
*
|
||||
* @throws SystemMessageException in case of an error
|
||||
* @since 3.0 returns void but throws SystemMessageException
|
||||
*/
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/********************************************************************************
|
||||
* Copyright (c) 2008 IBM Corporation. All rights reserved.
|
||||
* Copyright (c) 2008, 2009 IBM Corporation and others. All rights reserved.
|
||||
* This program and the accompanying materials are made available under the terms
|
||||
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
|
||||
* available at http://www.eclipse.org/legal/epl-v10.html
|
||||
|
@ -12,6 +12,7 @@
|
|||
* David McKnight (IBM) - [220547] [api][breaking] SimpleSystemMessage needs to specify a message id and some messages should be shared
|
||||
* David McKnight (IBM) - [223204] [cleanup] fix broken nls strings in files.ui and others
|
||||
* Martin Oberhuber (Wind River) - [226374] [api] Need default SystemMessageException specialisations
|
||||
* Martin Oberhuber (Wind River) - [227135] Cryptic exception when sftp-server is missing
|
||||
********************************************************************************/
|
||||
package org.eclipse.rse.services.clientserver.messages;
|
||||
|
||||
|
@ -27,7 +28,12 @@ public class CommonMessages extends NLS {
|
|||
|
||||
public static String MSG_EXCEPTION_OCCURRED;
|
||||
public static String MSG_ERROR_UNEXPECTED;
|
||||
|
||||
/**
|
||||
* General message format for concatenating a message with a cause
|
||||
*
|
||||
* @since 3.1
|
||||
*/
|
||||
public static String MSG_FAILURE_WITH_CAUSE;
|
||||
|
||||
public static String MSG_COMM_AUTH_FAILED;
|
||||
public static String MSG_COMM_AUTH_FAILED_DETAILS;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
###############################################################################
|
||||
# Copyright (c) 2008 IBM Corporation and others.
|
||||
# Copyright (c) 2008, 2009 IBM Corporation and others.
|
||||
# All rights reserved. This program and the accompanying materials
|
||||
# are made available under the terms of the Eclipse Public License v1.0
|
||||
# which accompanies this distribution, and is available at
|
||||
|
@ -14,6 +14,7 @@
|
|||
# David McKnight (IBM) - [223204] [cleanup] fix broken nls strings in files.ui and others
|
||||
# Xuan Chen (IBM) - [226784] [nls] Review Canceled vs. Cancelled in NLS Strings
|
||||
# Martin Oberhuber (Wind River) - [226374] [api] Need default SystemMessageException specialisations
|
||||
# Martin Oberhuber (Wind River) - [227135] Cryptic exception when sftp-server is missing
|
||||
###############################################################################
|
||||
|
||||
# NLS_MESSAGEFORMAT_VAR
|
||||
|
@ -21,6 +22,7 @@
|
|||
|
||||
|
||||
MSG_EXCEPTION_OCCURRED = An unexpected exception has occurred
|
||||
MSG_FAILURE_WITH_CAUSE = {0}: {1}
|
||||
|
||||
MSG_COMM_AUTH_FAILED=Invalid password or user ID
|
||||
MSG_COMM_AUTH_FAILED_DETAILS=Authentication with {0} failed because the password or user ID is not correct.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2008 Wind River Systems, Inc. and others.
|
||||
* Copyright (c) 2008, 2009 Wind River Systems, Inc. and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
|
@ -7,6 +7,7 @@
|
|||
*
|
||||
* Contributors:
|
||||
* Martin Oberhuber (Wind River) - initial API and implementation
|
||||
* Martin Oberhuber (Wind River) - [227135] Cryptic exception when sftp-server is missing
|
||||
*******************************************************************************/
|
||||
|
||||
package org.eclipse.rse.services.clientserver.messages;
|
||||
|
@ -65,39 +66,52 @@ public class SystemOperationFailedException extends SystemRemoteMessageException
|
|||
}
|
||||
|
||||
/**
|
||||
* Constructor with plugin ID and operation being performed.
|
||||
* Constructor with plugin ID and user message.
|
||||
*
|
||||
* @param remoteException the initial cause of this exception
|
||||
* @param pluginId ID of the plugin issuing the message.
|
||||
* @param userMessage user-readable message detailing cause of the
|
||||
* exception, or <code>null</code>. If not specified, a generic
|
||||
* message will be used ("Operation failed with exception").
|
||||
* @param remoteException the initial cause of this exception. Will be added
|
||||
* to the user message.
|
||||
*/
|
||||
public SystemOperationFailedException(String pluginId, String operationPerformed, Exception remoteException) {
|
||||
super(getMyMessage(pluginId, operationPerformed, remoteException), remoteException);
|
||||
public SystemOperationFailedException(String pluginId, String userMessage, Exception remoteException) {
|
||||
super(getMyMessage(pluginId, userMessage, remoteException), remoteException);
|
||||
}
|
||||
|
||||
private static SystemMessage getMyMessage(String pluginId, String operationPerformed, Exception remoteException) {
|
||||
private static SystemMessage getMyMessage(String pluginId, String userMessage, Exception remoteException) {
|
||||
|
||||
String message = operationPerformed;
|
||||
String exceptionMessage = null;
|
||||
String secondLevel = null;
|
||||
if (remoteException != null) {
|
||||
message = remoteException.getMessage();
|
||||
if (message == null) {
|
||||
message = remoteException.getClass().getName();
|
||||
exceptionMessage = remoteException.getMessage();
|
||||
if (exceptionMessage == null) {
|
||||
exceptionMessage = remoteException.getClass().getName();
|
||||
}
|
||||
Throwable cause = remoteException.getCause();
|
||||
if (cause != null) {
|
||||
secondLevel = cause.getMessage();
|
||||
if (secondLevel == null) {
|
||||
secondLevel = cause.getClass().getName();
|
||||
if (secondLevel.equals(message)) {
|
||||
if (secondLevel.equals(exceptionMessage)) {
|
||||
secondLevel = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (operationPerformed != null) {
|
||||
// FIXME Use Java MessageFormat for better formatting
|
||||
secondLevel = (secondLevel != null) ? operationPerformed + " : " + secondLevel : operationPerformed; //$NON-NLS-1$
|
||||
}
|
||||
}
|
||||
String msgTxt = NLS.bind(CommonMessages.MSG_OPERATION_FAILED, message);
|
||||
String msgTxt = userMessage;
|
||||
if (msgTxt == null) {
|
||||
// no user text -- use standard message with (non-localized)
|
||||
// exception message + second level
|
||||
msgTxt = NLS.bind(CommonMessages.MSG_OPERATION_FAILED, exceptionMessage);
|
||||
} else if (secondLevel == null) {
|
||||
// user text but no second level -- move exception text to 2nd level
|
||||
secondLevel = exceptionMessage;
|
||||
} else {
|
||||
// user text, exception and second level -- concatenate user text
|
||||
// and exception
|
||||
msgTxt = NLS.bind(CommonMessages.MSG_FAILURE_WITH_CAUSE, userMessage, exceptionMessage);
|
||||
}
|
||||
|
||||
SystemMessage msg = new SimpleSystemMessage(pluginId, ICommonMessageIds.MSG_OPERATION_FAILED,
|
||||
IStatus.ERROR, msgTxt, secondLevel);
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
* David McKnight (IBM) - [233349] Could not drag and drop file from Shell view to local folder.
|
||||
* David McKnight (IBM) - [233475] Cannot drag and drop file/folder within the shell output
|
||||
* Kevin Doyle (IBM) - [247297] Double Clicking on a Shell doesn't open that Shell
|
||||
* Martin Oberhuber (Wind River) - [227135] Cryptic exception when sftp-server is missing
|
||||
*******************************************************************************/
|
||||
|
||||
package org.eclipse.rse.shells.ui.view;
|
||||
|
@ -377,9 +378,12 @@ implements ISystemRemoteElementAdapter
|
|||
}
|
||||
|
||||
/**
|
||||
* Returns the associated IRemoteFile for this line of remote output if one exists
|
||||
* Returns the associated IRemoteFile for this line of remote output if one
|
||||
* exists
|
||||
*
|
||||
* @param output the line of remote output
|
||||
* @return the associated remote file
|
||||
* @return the associated remote file, or <code>null</code> if an error
|
||||
* occurred
|
||||
*/
|
||||
public static IRemoteFile outputToFile(IRemoteOutput output)
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue