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

[306989] [dstore] workspace in strange condition if expanding projects during logon

This commit is contained in:
David McKnight 2010-03-25 18:02:21 +00:00
parent db54411058
commit 937e9abafa

View file

@ -1,5 +1,5 @@
/******************************************************************************* /*******************************************************************************
* Copyright (c) 2002, 2009 IBM Corporation and others. * Copyright (c) 2002, 2010 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials * All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0 * are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at * which accompanies this distribution, and is available at
@ -38,6 +38,7 @@
* David McKnight (IBM) - [267236] [dstore] Can't connect after a wrong password * David McKnight (IBM) - [267236] [dstore] Can't connect after a wrong password
* David McKnight (IBM) - [274688] [api][dstore] DStoreConnectorService.internalConnect() needs to be cleaned up * David McKnight (IBM) - [274688] [api][dstore] DStoreConnectorService.internalConnect() needs to be cleaned up
* David McKnight (IBM) - [258529] Unable to display connection failure error message * David McKnight (IBM) - [258529] Unable to display connection failure error message
* David McKnight (IBM) - [306989] [dstore] workspace in strange condition if expanding projects during logon
*******************************************************************************/ *******************************************************************************/
package org.eclipse.rse.connectorservice.dstore; package org.eclipse.rse.connectorservice.dstore;
@ -1300,54 +1301,58 @@ public class DStoreConnectorService extends StandardConnectorService implements
} }
_isConnecting = true; _isConnecting = true;
Boolean alertedNONSSL = new Boolean(false); try{
Boolean alertedNONSSL = new Boolean(false);
// set A_PLUGIN_PATH so that dstore picks up the property
setPluginPathProperty(); // set A_PLUGIN_PATH so that dstore picks up the property
setPluginPathProperty();
// Fire comm event to signal state about to change
fireCommunicationsEvent(CommunicationsEvent.BEFORE_CONNECT); // Fire comm event to signal state about to change
fireCommunicationsEvent(CommunicationsEvent.BEFORE_CONNECT);
ConnectionStatus connectStatus = null;
ConnectionStatus launchStatus = null; ConnectionStatus connectStatus = null;
ConnectionStatus launchStatus = null;
clientConnection = new ClientConnection(getPrimarySubSystem().getHost().getAliasName());
clientConnection = new ClientConnection(getPrimarySubSystem().getHost().getAliasName());
clientConnection.setHost(getHostName());
clientConnection.setPort(Integer.toString(getPort())); clientConnection.setHost(getHostName());
clientConnection.setPort(Integer.toString(getPort()));
getPrimarySubSystem();
IRemoteServerLauncher serverLauncher = getDStoreServerLauncher(); getPrimarySubSystem();
IRemoteServerLauncher serverLauncher = getDStoreServerLauncher();
ServerLaunchType serverLauncherType = null;
if (serverLauncher != null){ ServerLaunchType serverLauncherType = null;
serverLauncherType = serverLauncher.getServerLaunchType(); if (serverLauncher != null){
} serverLauncherType = serverLauncher.getServerLaunchType();
}
SystemSignonInformation info = getSignonInformation();
if (serverLauncherType == ServerLaunchType.REXEC_LITERAL){ // start the server via REXEC SystemSignonInformation info = getSignonInformation();
connectStatus = connectWithREXEC(info, serverLauncher, monitor); if (serverLauncherType == ServerLaunchType.REXEC_LITERAL){ // start the server via REXEC
} connectStatus = connectWithREXEC(info, serverLauncher, monitor);
else if (serverLauncherType == ServerLaunchType.DAEMON_LITERAL) { // start the server via the daemon }
else if (serverLauncherType == ServerLaunchType.DAEMON_LITERAL) { // start the server via the daemon
ConnectionStatusPair connectStatusPair = connectWithDaemon(info, serverLauncher, alertedNONSSL, monitor);
connectStatus = connectStatusPair.getConnectStatus(); ConnectionStatusPair connectStatusPair = connectWithDaemon(info, serverLauncher, alertedNONSSL, monitor);
launchStatus = connectStatusPair.getLaunchStatus(); connectStatus = connectStatusPair.getConnectStatus();
} launchStatus = connectStatusPair.getLaunchStatus();
else if (serverLauncherType == ServerLaunchType.RUNNING_LITERAL){ // connect to running server }
connectStatus = connectWithRunning(monitor); else if (serverLauncherType == ServerLaunchType.RUNNING_LITERAL){ // connect to running server
} connectStatus = connectWithRunning(monitor);
else { // server launcher type is unknown }
connectStatus = connectWithOther(clientConnection, info, serverLauncher, monitor); else { // server launcher type is unknown
} connectStatus = connectWithOther(clientConnection, info, serverLauncher, monitor);
}
if (connectStatus != null && connectStatus.isConnected()){ // connected
initializeConnection(launchStatus, connectStatus, alertedNONSSL, monitor); if (connectStatus != null && connectStatus.isConnected()){ // connected
} initializeConnection(launchStatus, connectStatus, alertedNONSSL, monitor);
else { // diagnosis, reconnection and other connection failure handling }
handleConnectionFailure(launchStatus, connectStatus, serverLauncher, serverLauncherType, monitor); else { // diagnosis, reconnection and other connection failure handling
} handleConnectionFailure(launchStatus, connectStatus, serverLauncher, serverLauncherType, monitor);
}
}
finally {
_isConnecting = false; _isConnecting = false;
}
} }
protected boolean isPortOutOfRange(String message) protected boolean isPortOutOfRange(String message)