]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.diagram/src/org/simantics/diagram/handler/Paster.java
Sync git svn branch with SVN repository r33392.
[simantics/platform.git] / bundles / org.simantics.diagram / src / org / simantics / diagram / handler / Paster.java
index a103ab8bc9fdca3f529d7534719937b194e9d90a..153199d6cfae6e81d47a095b9bd460e22c3a0a08 100644 (file)
@@ -902,6 +902,7 @@ public class Paster {
                     boolean external = FlagUtil.isExternal(graph, flag);\r
                     boolean inSingleDiagram = FlagUtil.isJoinedInSingleDiagram(graph, flag);\r
                     if (!external && inSingleDiagram) {\r
+                        // FIXME: this doesn't take into account local merged flags, which is a corner case but still possible\r
                         Resource counterpart = FlagUtil.getPossibleCounterpart(graph, flag);\r
                         if (selectedFlags.containsKey(counterpart)) {\r
                             flagSelectedCounterpart.put(flag, counterpart);\r
@@ -1268,7 +1269,11 @@ public class Paster {
                     Resource dst = (Resource) resourceMap.get(src);\r
                     for (Resource connectedToSrc : graph.getObjects(src, DIA.AreConnected)) {\r
                         Resource connectedToDst = (Resource) resourceMap.get(connectedToSrc);\r
-                        graph.claim(dst, DIA.AreConnected, DIA.AreConnected, connectedToDst);\r
+                        if (connectedToDst != null) {\r
+                            graph.claim(dst, DIA.AreConnected, DIA.AreConnected, connectedToDst);\r
+                        } else {\r
+                            throw new DatabaseException("Connection copying failed due to an invalid DIA.AreConnected link between source resources " + src + " <-> " + connectedToSrc);\r
+                        }\r
                     }\r
                 }\r
                 for (Statement hasConnector : sourceHasConnectors) {\r