diff --git a/src/main/java/net/onrc/onos/core/intent/ConstrainedShortestPathIntent.java b/src/main/java/net/onrc/onos/core/intent/ConstrainedShortestPathIntent.java
index 1e025b5..2f02857 100644
--- a/src/main/java/net/onrc/onos/core/intent/ConstrainedShortestPathIntent.java
+++ b/src/main/java/net/onrc/onos/core/intent/ConstrainedShortestPathIntent.java
@@ -23,4 +23,16 @@
     public double getBandwidth() {
         return bandwidth;
     }
+
+    @Override
+    public int hashCode() {
+        // TODO: Is this the intended behavior?
+        return (super.hashCode());
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        // TODO: Is this the intended behavior?
+        return (super.equals(obj));
+    }
 }
diff --git a/src/main/java/net/onrc/onos/core/intent/ErrorIntent.java b/src/main/java/net/onrc/onos/core/intent/ErrorIntent.java
index 44ef6c3..c1722fd 100644
--- a/src/main/java/net/onrc/onos/core/intent/ErrorIntent.java
+++ b/src/main/java/net/onrc/onos/core/intent/ErrorIntent.java
@@ -28,4 +28,16 @@
         this.message = message;
         this.parentIntent = parentIntent;
     }
+
+    @Override
+    public int hashCode() {
+        // TODO: Is this the intended behavior?
+        return (super.hashCode());
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        // TODO: Is this the intended behavior?
+        return (super.equals(obj));
+    }
 }
diff --git a/src/main/java/net/onrc/onos/core/intent/PathIntent.java b/src/main/java/net/onrc/onos/core/intent/PathIntent.java
index b936ea4..154a61a 100644
--- a/src/main/java/net/onrc/onos/core/intent/PathIntent.java
+++ b/src/main/java/net/onrc/onos/core/intent/PathIntent.java
@@ -53,6 +53,18 @@
     }
 
     @Override
+    public int hashCode() {
+        // TODO: Is this the intended behavior?
+        return (super.hashCode());
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        // TODO: Is this the intended behavior?
+        return (super.equals(obj));
+    }
+
+    @Override
     public String toString() {
         return String.format("%s, %s, %s", getId(), getState(), getPath());
     }
diff --git a/src/main/java/net/onrc/onos/core/intent/ShortestPathIntent.java b/src/main/java/net/onrc/onos/core/intent/ShortestPathIntent.java
index 38892b2..f62ec38 100644
--- a/src/main/java/net/onrc/onos/core/intent/ShortestPathIntent.java
+++ b/src/main/java/net/onrc/onos/core/intent/ShortestPathIntent.java
@@ -66,6 +66,18 @@
     }
 
     @Override
+    public int hashCode() {
+        // TODO: Is this the intended behavior?
+        return (super.hashCode());
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        // TODO: Is this the intended behavior?
+        return (super.equals(obj));
+    }
+
+    @Override
     public String toString() {
         return String.format("id:%s, state:%s, srcDpid:%s, srcPort:%d, srcMac:%s, dstDpid:%s, dstPort:%d, dstMac:%s",
                 getId(), getState(),
