diff --git a/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/services/dstore/AbstractDStoreService.java b/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/services/dstore/AbstractDStoreService.java index e8c469437d7..a99d66d9ef0 100644 --- a/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/services/dstore/AbstractDStoreService.java +++ b/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/services/dstore/AbstractDStoreService.java @@ -259,6 +259,7 @@ public abstract class AbstractDStoreService implements IDStoreService _initializeStatus = null; _cmdDescriptorMap.clear(); _minerElement = null; + _statusMonitor = null; } protected void initMiner(IProgressMonitor monitor) diff --git a/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/services/dstore/files/DStoreFileService.java b/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/services/dstore/files/DStoreFileService.java index 18b52419da5..c16609396f7 100644 --- a/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/services/dstore/files/DStoreFileService.java +++ b/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/services/dstore/files/DStoreFileService.java @@ -79,6 +79,12 @@ public class DStoreFileService extends AbstractDStoreService implements IFileSer _fileTypeRegistry = fileTypeRegistry; } + public void uninitService(IProgressMonitor monitor) + { + super.uninitService(monitor); + _fileElementMap.clear(); + } + public String getName() { return ServiceResources.DStore_File_Service_Label; diff --git a/rse/plugins/org.eclipse.rse.ui/model/org/eclipse/rse/internal/model/SystemRegistry.java b/rse/plugins/org.eclipse.rse.ui/model/org/eclipse/rse/internal/model/SystemRegistry.java index a7713f27550..68bca632ca9 100644 --- a/rse/plugins/org.eclipse.rse.ui/model/org/eclipse/rse/internal/model/SystemRegistry.java +++ b/rse/plugins/org.eclipse.rse.ui/model/org/eclipse/rse/internal/model/SystemRegistry.java @@ -2157,6 +2157,10 @@ public class SystemRegistry implements ISystemRegistry, ISystemModelChangeEvents if ((defaultUserId != null) && (defaultUserId.length() == 0)) defaultUserId = null; conn = pool.createHost(systemType, connectionName, hostName, description, defaultUserId, defaultUserIdLocation); + if (conn == null) // conn already exists + { + conn = pool.getHost(connectionName); + } if (promptable) conn.setPromptable(true); } 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 1ca92681da1..2030f32eec9 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 @@ -1212,7 +1212,11 @@ public abstract class SubSystemConfiguration implements ISubSystemConfiguration { invalidateSubSystemCache(conn); // re-gen list of subsystems-by-connection on next call if (creatingConnection) + { + if (subSystemsRestoredFlags == null) + reset(); subSystemsRestoredFlags.put(conn, Boolean.TRUE); // do not try to restore subsequently. Nothing to restore! + } ISubSystem subsys = createSubSystemInternal(conn); if (subsys != null) {