Handle unknown node reference inside subflow module

This commit is contained in:
Nick O'Leary 2023-11-30 14:46:43 +00:00
parent 28825049fe
commit d42e75ebd0
No known key found for this signature in database
GPG Key ID: 4F2157149161A6C9

View File

@ -248,7 +248,7 @@ class Subflow extends Flow {
for (j=0;j<wires.length;j++) { for (j=0;j<wires.length;j++) {
if (wires[j].id != self.subflowDef.id) { if (wires[j].id != self.subflowDef.id) {
node = self.node_map[wires[j].id]; node = self.node_map[wires[j].id];
if (node._originalWires) { if (node && node._originalWires) {
node.wires = clone(node._originalWires); node.wires = clone(node._originalWires);
} }
} }
@ -265,8 +265,10 @@ class Subflow extends Flow {
subflowInstanceModified = true; subflowInstanceModified = true;
} else { } else {
node = self.node_map[wires[j].id]; node = self.node_map[wires[j].id];
node.wires[wires[j].port] = node.wires[wires[j].port].concat(newWires[i]); if (node) {
modifiedNodes[node.id] = node; node.wires[wires[j].port] = node.wires[wires[j].port].concat(newWires[i]);
modifiedNodes[node.id] = node;
}
} }
} }
} }
@ -294,10 +296,14 @@ class Subflow extends Flow {
this.node._updateWires(subflowInstanceConfig.wires); this.node._updateWires(subflowInstanceConfig.wires);
} else { } else {
var node = self.node_map[wires[j].id]; var node = self.node_map[wires[j].id];
if (!node._originalWires) { if (node) {
node._originalWires = clone(node.wires); if (!node._originalWires) {
node._originalWires = clone(node.wires);
}
node.wires[wires[j].port] = (node.wires[wires[j].port]||[]).concat(this.subflowInstance.wires[i]);
} else {
this.error("Unknown node referenced inside subflow: " + wires[j].id)
} }
node.wires[wires[j].port] = (node.wires[wires[j].port]||[]).concat(this.subflowInstance.wires[i]);
} }
} }
} }
@ -313,11 +319,15 @@ class Subflow extends Flow {
this.node._updateWires(subflowInstanceConfig.wires); this.node._updateWires(subflowInstanceConfig.wires);
} else { } else {
var node = self.node_map[wires[j].id]; var node = self.node_map[wires[j].id];
if (!node._originalWires) { if (node) {
node._originalWires = clone(node.wires); if (!node._originalWires) {
node._originalWires = clone(node.wires);
}
node.wires[wires[j].port] = (node.wires[wires[j].port]||[]);
node.wires[wires[j].port].push(subflowStatusId);
} else {
this.error("Unknown node referenced inside subflow: " + wires[j].id)
} }
node.wires[wires[j].port] = (node.wires[wires[j].port]||[]);
node.wires[wires[j].port].push(subflowStatusId);
} }
} }
} }