Poorly implemented PipeRun.remove may cause unwanted component removals
PipeRun.remove()
detaches Components
before executing remove logic, but fails to detach PipingControlPoints
. Normally this would not be a problem, but since DB based undo does object modifications in random order, removing a PipeRun may lead to unwanted removal of a size changing component (a Reducer) through its secondary control point.