Guard malformed intent by pre-condition check on instantiation

Change-Id: I90ca0fac2e3b68c4ca5b464777b0cdaa2227c2e5
diff --git a/core/api/src/main/java/org/onlab/onos/net/intent/SinglePointToMultiPointIntent.java b/core/api/src/main/java/org/onlab/onos/net/intent/SinglePointToMultiPointIntent.java
index bb38846..efe96e2 100644
--- a/core/api/src/main/java/org/onlab/onos/net/intent/SinglePointToMultiPointIntent.java
+++ b/core/api/src/main/java/org/onlab/onos/net/intent/SinglePointToMultiPointIntent.java
@@ -56,8 +56,12 @@
         super(id(SinglePointToMultiPointIntent.class, selector, treatment,
                  ingressPoint, egressPoints), appId, null, selector, treatment);
         checkNotNull(egressPoints);
+        checkNotNull(ingressPoint);
         checkArgument(!egressPoints.isEmpty(), "Egress point set cannot be empty");
-        this.ingressPoint = checkNotNull(ingressPoint);
+        checkArgument(!egressPoints.contains(ingressPoint),
+                "Set of egresses should not contain ingress (ingress: %s)", ingressPoint);
+
+        this.ingressPoint = ingressPoint;
         this.egressPoints = Sets.newHashSet(egressPoints);
     }