wlu: 206068 fix
diff --git a/org.eclipse.epf.import/src/org/eclipse/epf/importing/services/LibraryImportManager.java b/org.eclipse.epf.import/src/org/eclipse/epf/importing/services/LibraryImportManager.java index 9ab06bb..780c9ad 100644 --- a/org.eclipse.epf.import/src/org/eclipse/epf/importing/services/LibraryImportManager.java +++ b/org.eclipse.epf.import/src/org/eclipse/epf/importing/services/LibraryImportManager.java
@@ -1663,11 +1663,13 @@ List pluginIds = new ArrayList(); Map<String, MethodPlugin> map = new HashMap<String, MethodPlugin>(); + Map<String, MethodPlugin> guidMap = new HashMap<String, MethodPlugin>(); List<MethodPlugin> basePlugins = LibraryService.getInstance().getCurrentMethodLibrary() .getMethodPlugins(); for (int i = 0; i < basePlugins.size(); i++) { MethodPlugin plugin = basePlugins.get(i); map.put(plugin.getName(), plugin); + guidMap.put(plugin.getGuid(), plugin); } if (map.isEmpty()) { @@ -1680,9 +1682,21 @@ MethodPlugin plugin = importPlugins.get(i); String name = plugin.getName(); String guid = plugin.getGuid(); + MethodPlugin basePlugin = map.get(name); + boolean toAdd = false; if (basePlugin != null && ! basePlugin.getGuid().equals(guid) && ! basePlugin.getUserChangeable()) { + toAdd = true; + } else { + basePlugin = guidMap.get(guid); + if (basePlugin != null && ! basePlugin.getName().equals(name) + && ! basePlugin.getUserChangeable()) { + toAdd = true; + } + } + + if (toAdd){ pluginIds.add(guid); basePlugin.setUserChangeable(new Boolean(true)); Resource res = basePlugin.eResource();