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