Removing an elbow causes an exception, and broken control point structure.
Removing an elbow from a line that ends to nozzles in both ends leads to control point structure corruption.
Some of the exceptions that are shown to the user (with A6 Pipeline) are:
org.simantics.db.exception.DatabaseException: Component resource [id=$762122] Pipe01 is connected to [id=$757909] Elbow01, but its has no connection back.
org.simantics.db.exception.DatabaseException: java.lang.RuntimeException: Pipe run PipeRun01 is broken at component Elbow01 - No next element
The actual error causing the corruption is:
java.lang.NullPointerException: Cannot invoke "javax.vecmath.Vector3d.normalize()" because "dirOutN" is null
at org.simantics.plant3d.scenegraph.controlpoint.PipeControlPoint.convertVariableAngleToFixed(PipeControlPoint.java:358)
at org.simantics.plant3d.scenegraph.controlpoint.PipeControlPoint._setNext(PipeControlPoint.java:297)
at org.simantics.plant3d.scenegraph.controlpoint.PipeControlPoint.setNext(PipeControlPoint.java:262)
at org.simantics.plant3d.scenegraph.PipelineComponent._syncNext(PipelineComponent.java:382)
at org.simantics.plant3d.scenegraph.PipelineComponent.syncNext(PipelineComponent.java:356)
at org.simantics.plant3d.scenegraph.PipelineComponent._removeRef(PipelineComponent.java:336)
at org.simantics.plant3d.scenegraph.PipelineComponent.setPrevious(PipelineComponent.java:204)
at org.simantics.plant3d.scenegraph.controlpoint.PipeControlPoint._setPrevious(PipeControlPoint.java:330)
at org.simantics.plant3d.scenegraph.controlpoint.PipeControlPoint.setPrevious(PipeControlPoint.java:279)
at org.simantics.plant3d.scenegraph.controlpoint.PipeControlPoint._remove(PipeControlPoint.java:1293)
at org.simantics.plant3d.scenegraph.controlpoint.PipeControlPoint._remove(PipeControlPoint.java:1202)
at org.simantics.plant3d.scenegraph.controlpoint.PipingRules.processPathLeg(PipingRules.java:1762)
at org.simantics.plant3d.scenegraph.controlpoint.PipingRules.checkExpandPathLeg(PipingRules.java:1139)
at org.simantics.plant3d.scenegraph.controlpoint.PipingRules.updateDirectedPathLeg(PipingRules.java:1224)
at org.simantics.plant3d.scenegraph.controlpoint.PipingRules.updatePathLeg(PipingRules.java:644)
at org.simantics.plant3d.scenegraph.controlpoint.PipingRules.updatePathLeg(PipingRules.java:624)
at org.simantics.plant3d.scenegraph.controlpoint.PipingRules.expandPathLeg(PipingRules.java:1692)
at org.simantics.plant3d.scenegraph.controlpoint.PipingRules.checkExpandPathLeg(PipingRules.java:1136)
at org.simantics.plant3d.scenegraph.controlpoint.PipingRules.updateDirectedPathLeg(PipingRules.java:1224)
at org.simantics.plant3d.scenegraph.controlpoint.PipingRules.updatePathLeg(PipingRules.java:644)
at org.simantics.plant3d.scenegraph.controlpoint.PipingRules.updatePathLeg(PipingRules.java:624)
at org.simantics.plant3d.scenegraph.controlpoint.PipingRules.updatePathLegNext(PipingRules.java:345)
at org.simantics.plant3d.scenegraph.controlpoint.PipingRules.updatePathLegEndControlPoint(PipingRules.java:213)
at org.simantics.plant3d.scenegraph.controlpoint.PipingRules._positionUpdate(PipingRules.java:130)
at org.simantics.plant3d.scenegraph.controlpoint.PipingRules.update(PipingRules.java:91)
at org.simantics.plant3d.scenegraph.P3DRootNode.updatePipingRules(P3DRootNode.java:86)
at fi.apros.pipeline.editor.PipelineEditor.updatePipingRules(PipelineEditor.java:2455)
at fi.apros.pipeline.editor.PipelineEditor$8.doRemove(PipelineEditor.java:863)
at org.simantics.g3d.vtk.action.RemoveAction.run(RemoveAction.java:45)