diff --git a/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/core/subsystems/AbstractConnectorService.java b/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/core/subsystems/AbstractConnectorService.java index d639436498f..a44b35db694 100644 --- a/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/core/subsystems/AbstractConnectorService.java +++ b/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/core/subsystems/AbstractConnectorService.java @@ -1,5 +1,5 @@ /******************************************************************************** - * Copyright (c) 2002, 2010 IBM Corporation and others. All rights reserved. + * Copyright (c) 2002, 2013 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 @@ -20,6 +20,7 @@ * David McKnight (IBM) - [249222] [api] Access to communication listeners in AbstractConnectorService * David McKnight (IBM) - [272882] [api] Handle exceptions in IService.initService() * David Dykstal (IBM) - [321766] safely serialize connect and disconnect operations + * David McKnight (IBM) - [415088] potential dual connect on RSE restore when user expands filter ********************************************************************************/ package org.eclipse.rse.core.subsystems; @@ -496,10 +497,12 @@ public abstract class AbstractConnectorService extends RSEModelObject implements long timeout = 120000; // two minute timeout, this is arbitrary but seems to be a good amount UnsafeRunnableWithProgress runnable = new UnsafeRunnableWithProgress() { public void run(IProgressMonitor monitor) throws Exception { - preConnect(); - internalConnect(monitor); - initializeSubSystems(monitor); - postConnect(); + if (!isConnected()){ + preConnect(); + internalConnect(monitor); + initializeSubSystems(monitor); + postConnect(); + } } }; try {