From 1d82ed5997ae951649f95f285346e6d5feedfd56 Mon Sep 17 00:00:00 2001 From: David McKnight Date: Wed, 23 Apr 2008 16:16:16 +0000 Subject: [PATCH] [228343] RSE unable to recover after RemoteSystemsTempfiles deletion --- .../ui/resources/SystemRemoteEditManager.java | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/resources/SystemRemoteEditManager.java b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/resources/SystemRemoteEditManager.java index a8d6a9f822d..4f6492cd9de 100644 --- a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/resources/SystemRemoteEditManager.java +++ b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/resources/SystemRemoteEditManager.java @@ -15,6 +15,7 @@ * Martin Oberhuber (Wind River) - [186773] split ISystemRegistryUI from ISystemRegistry * Martin Oberhuber (Wind River) - [189130] Move SystemIFileProperties from UI to Core * David McKnight (IBM) - [195285] mount path mapper changes + * David McKnight (IBM) - [228343] RSE unable to recover after RemoteSystemsTempfiles deletion ********************************************************************************/ package org.eclipse.rse.internal.files.ui.resources; @@ -35,6 +36,8 @@ import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.core.runtime.IExtensionRegistry; import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Platform; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.rse.core.RSECorePlugin; @@ -304,11 +307,22 @@ public class SystemRemoteEditManager { if (editProject != null) { - if (!editProject.exists()) - editProject.create(null); + IProgressMonitor monitor = new NullProgressMonitor(); + if (!editProject.exists()) + editProject.create(monitor); - if (!editProject.isOpen()) - editProject.open(null); + if (!editProject.isOpen()){ + try { + editProject.open(monitor); + } + catch (CoreException e) { + // probably no .project file + // time to start again! + editProject.delete(true, monitor); + editProject.create(monitor); + editProject.open(monitor); + } + } IProjectDescription description = editProject.getDescription(); String[] natures = description.getNatureIds(); @@ -337,6 +351,7 @@ public class SystemRemoteEditManager } catch (CoreException e) { + e.printStackTrace(); SystemBasePlugin.logError("Error creating temp project", e); //$NON-NLS-1$ } return editProject;