From ea5018aece2b90f8b5ac57c1da054ef0cb56ad13 Mon Sep 17 00:00:00 2001 From: Markus Schorn Date: Wed, 4 Jul 2007 14:44:27 +0000 Subject: [PATCH] Fix deletion of project local preferences. --- .../cdt/internal/core/LocalProjectScope.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/LocalProjectScope.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/LocalProjectScope.java index ce4c1bdf8b4..1ea455b8366 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/LocalProjectScope.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/LocalProjectScope.java @@ -96,13 +96,22 @@ public class LocalProjectScope implements IScopeContext { Preferences target= getPPP(movedTo.lastSegment()); copyPrefs(prefs, target); } - Preferences parent= prefs.parent(); - prefs.removeNode(); - parent.flush(); + deletePrefs(prefs); } catch (BackingStoreException e) { } } + private static void deletePrefs(Preferences prefs) throws BackingStoreException { + prefs.clear(); + String[] children= prefs.childrenNames(); + for (int i = 0; i < children.length; i++) { + String child = children[i]; + prefs.node(child).removeNode(); + } + prefs.flush(); + prefs.removeNode(); + } + private static void copyPrefs(Preferences prefs, Preferences target) throws BackingStoreException { String[] keys= prefs.keys(); for (int i = 0; i < keys.length; i++) { @@ -117,5 +126,6 @@ public class LocalProjectScope implements IScopeContext { String child = children[i]; copyPrefs(prefs.node(child), target.node(child)); } + target.flush(); } }