Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--org.eclipse.core.variables/META-INF/MANIFEST.MF2
-rw-r--r--org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringVariableManager.java19
2 files changed, 17 insertions, 4 deletions
diff --git a/org.eclipse.core.variables/META-INF/MANIFEST.MF b/org.eclipse.core.variables/META-INF/MANIFEST.MF
index 9ab0c461e..eb43f8008 100644
--- a/org.eclipse.core.variables/META-INF/MANIFEST.MF
+++ b/org.eclipse.core.variables/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.core.variables; singleton:=true
-Bundle-Version: 3.2.100.qualifier
+Bundle-Version: 3.2.200.qualifier
Bundle-Activator: org.eclipse.core.variables.VariablesPlugin
Bundle-Vendor: %providerName
Bundle-Localization: plugin
diff --git a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringVariableManager.java b/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringVariableManager.java
index 6338cda8b..fe3e8d69a 100644
--- a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringVariableManager.java
+++ b/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringVariableManager.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
+ * Copyright (c) 2000, 2008 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
@@ -7,6 +7,7 @@
*
* Contributors:
* IBM Corporation - initial API and implementation
+ * Stefan Liebig - Bug 242685 StringVariableManager - Variable contributions may silently override existing variables
*******************************************************************************/
package org.eclipse.core.internal.variables;
@@ -224,7 +225,13 @@ public class StringVariableManager implements IStringVariableManager, IPropertyC
}
String description= element.getAttribute(ATTR_DESCRIPTION);
DynamicVariable variable= new DynamicVariable(name, description, element);
- fDynamicVariables.put(variable.getName(), variable);
+ Object old = fDynamicVariables.put(variable.getName(), variable);
+ if (old != null) {
+ DynamicVariable oldVariable = (DynamicVariable)old;
+ VariablesPlugin.logMessage(NLS.bind("Dynamic variable extension from bundle ''{0}'' overrides existing extension variable ''{1}'' from bundle ''{2}''", //$NON-NLS-1$
+ new String[] {element.getDeclaringExtension().getContributor().getName(),oldVariable.getName(),
+ oldVariable.getConfigurationElement().getDeclaringExtension().getContributor().getName()}), null);
+ }
}
}
@@ -245,7 +252,13 @@ public class StringVariableManager implements IStringVariableManager, IPropertyC
boolean isReadOnly = TRUE_VALUE.equals(element.getAttribute(ATTR_READ_ONLY));
IValueVariable variable = new ContributedValueVariable(name, description, isReadOnly, element);
- fValueVariables.put(name, variable);
+ Object old = fValueVariables.put(name, variable);
+ if (old != null) {
+ StringVariable oldVariable = (StringVariable)old;
+ VariablesPlugin.logMessage(NLS.bind("Contributed variable extension from bundle ''{0}'' overrides existing extension variable ''{1}'' from bundle ''{2}''", //$NON-NLS-1$
+ new String[] {element.getDeclaringExtension().getContributor().getName(),oldVariable.getName(),
+ oldVariable.getConfigurationElement().getDeclaringExtension().getContributor().getName()}), null);
+ }
}
}

Back to the top