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]].

Reply via email to