Author: linus Date: 2011-12-12 09:07:41-0800 New Revision: 19798 Modified: branches/BRANCH_0_34_x/src/argouml-core-model-mdr/ (props changed) branches/BRANCH_0_34_x/src/argouml-core-model-mdr/src/org/argouml/model/mdr/XmiReaderImpl.java
Log: Merged the solution to issue 6389. Merged from revision 19797. Modified: branches/BRANCH_0_34_x/src/argouml-core-model-mdr/src/org/argouml/model/mdr/XmiReaderImpl.java Url: http://argouml.tigris.org/source/browse/argouml/branches/BRANCH_0_34_x/src/argouml-core-model-mdr/src/org/argouml/model/mdr/XmiReaderImpl.java?view=diff&pathrev=19798&r1=19797&r2=19798 ============================================================================== --- branches/BRANCH_0_34_x/src/argouml-core-model-mdr/src/org/argouml/model/mdr/XmiReaderImpl.java (original) +++ branches/BRANCH_0_34_x/src/argouml-core-model-mdr/src/org/argouml/model/mdr/XmiReaderImpl.java 2011-12-12 09:07:41-0800 @@ -395,6 +395,13 @@ */ public Map<String, Object> getXMIUUIDToObjectMap() { if (resolver != null) { + // Give the resolver.getIdToObjectMap() entries + // priority over entries with the same UUID from + // resolver.getIdToObjectMaps() because entries + // in resolver.getIdToObjectMaps() are historic. + HashMap<String, Object> globalXmiIdToObjectMap = + new HashMap<String, Object>(resolver.getIdToObjectMap()); + Map<String, Map<String, Object>> idToObjectMaps = resolver.getIdToObjectMaps(); Set<Entry<String,Map<String,Object>>> entrySet = null; @@ -411,17 +418,19 @@ entry.setValue(new HashMap<String,Object>(entry.getValue())); } } - HashMap<String, Object> globalXmiIdToObjectMap = - new HashMap<String, Object>(); for (Entry<String, Map<String, Object>> entry : entrySet) { String xmiIdPrefix = entry.getKey().startsWith(getTempXMIFileURIPrefix()) ? "" : entry.getKey() + "#"; for (Entry<String, Object> innerMapEntry : entry.getValue().entrySet()) { - globalXmiIdToObjectMap.put( - xmiIdPrefix + innerMapEntry.getKey(), - innerMapEntry.getValue()); + + String id = xmiIdPrefix + innerMapEntry.getKey(); + if (!globalXmiIdToObjectMap.containsKey(id)) { + globalXmiIdToObjectMap.put( + id, + innerMapEntry.getValue()); + } } } return globalXmiIdToObjectMap; ------------------------------------------------------ http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2892551 To unsubscribe from this discussion, e-mail: [[email protected]].
