]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/PipelineComponent.java
Merge "Fix NPE in branch point synchronization"
[simantics/3d.git] / org.simantics.plant3d / src / org / simantics / plant3d / scenegraph / PipelineComponent.java
index 36c6dde1b77e0667b50b1f7a6be4cb7f4f395c6f..f71dfed41a8e1e676842951bf4a5fc2c60084fcc 100644 (file)
@@ -88,8 +88,8 @@ public abstract class PipelineComponent extends GeometryNode {
        public void setNext(PipelineComponent comp) {
                if (next == comp)
                        return;
-               if (comp == null)
-            this.next._removeRef(this);
+               if (this.next != null)
+                   this.next._removeRef(this);
                this.next = comp;
                this.syncnext = false;
                syncNext();
@@ -109,7 +109,7 @@ public abstract class PipelineComponent extends GeometryNode {
        public void setPrevious(PipelineComponent comp) {
                if (previous == comp)
                        return;
-               if (comp == null)
+               if (this.previous != null)
                    this.previous._removeRef(this);
                this.previous = comp;
                this.syncprev = false;
@@ -130,8 +130,8 @@ public abstract class PipelineComponent extends GeometryNode {
        public void setBranch0(PipelineComponent comp) {
                if (branch0 == comp)
                        return;
-               if (comp == null)
-            this.branch0._removeRef(this);
+               if (this.branch0 != null)
+                   this.branch0._removeRef(this);
                this.branch0 = comp;
                this.syncbr0 = false;
                syncBranch0();
@@ -322,6 +322,8 @@ public abstract class PipelineComponent extends GeometryNode {
                        if (branch0 != null) {
                                if (branch0.getControlPoint() != null) {
                                        PipeControlPoint branchPoint = getBranchPoint();
+                                       if (branchPoint == null)
+                                           return false;
                                        PipeControlPoint pcp = branch0.getControlPoint();
                                        // TODO, relying that the other direction is connected.
                                        boolean next = branch0.getPrevious() == this; // this --> branch0