diff --git a/rse/plugins/org.eclipse.rse.ui/subsystems/org/eclipse/rse/core/subsystems/SubSystemConfiguration.java b/rse/plugins/org.eclipse.rse.ui/subsystems/org/eclipse/rse/core/subsystems/SubSystemConfiguration.java index 2d1d6fc2c21..1055ae649ed 100644 --- a/rse/plugins/org.eclipse.rse.ui/subsystems/org/eclipse/rse/core/subsystems/SubSystemConfiguration.java +++ b/rse/plugins/org.eclipse.rse.ui/subsystems/org/eclipse/rse/core/subsystems/SubSystemConfiguration.java @@ -933,12 +933,15 @@ public abstract class SubSystemConfiguration implements ISubSystemConfiguration //System.out.println("in deleteSubSystemsByConnection. Nbr subsystems = " + subsystems.length); for (int idx = 0; idx < subsystems.length; idx++) { - try - { - subsystems[idx].disconnect(); // be nice if we had a shell to pass! - } - catch (Exception exc) + if (subsystems[idx].isConnected()) { + try + { + subsystems[idx].disconnect(); // be nice if we had a shell to pass! + } + catch (Exception exc) + { + } } subsystems[idx].deletingConnection(); // let subsystem do any clean up needed prior to death deleteSubSystem(subsystems[idx]); @@ -1590,12 +1593,15 @@ public abstract class SubSystemConfiguration implements ISubSystemConfiguration */ public boolean deleteSubSystem(ISubSystem subsystem) { - try - { - subsystem.disconnect(); // just in case. - } - catch (Exception exc) + if (subsystem.isConnected()) { + try + { + subsystem.disconnect(); // just in case. + } + catch (Exception exc) + { + } } removeSubSystem(subsystem); // remove from our in-memory cache ISystemFilterPoolReferenceManager fpRefMgr = subsystem.getSystemFilterPoolReferenceManager();