diff --git a/plugins/network-elements/juniper-contrail/src/org/apache/cloudstack/network/contrail/management/ServerDBSyncImpl.java b/plugins/network-elements/juniper-contrail/src/org/apache/cloudstack/network/contrail/management/ServerDBSyncImpl.java index 8cb4e8d0b32..7a77040e0c9 100644 --- a/plugins/network-elements/juniper-contrail/src/org/apache/cloudstack/network/contrail/management/ServerDBSyncImpl.java +++ b/plugins/network-elements/juniper-contrail/src/org/apache/cloudstack/network/contrail/management/ServerDBSyncImpl.java @@ -18,6 +18,7 @@ package org.apache.cloudstack.network.contrail.management; import java.io.IOException; +import java.io.Serializable; import java.util.ArrayList; import java.util.Comparator; import java.util.List; @@ -931,7 +932,7 @@ public class ServerDBSyncImpl implements ServerDBSync { s_logger.debug("equal " + siModel.getQualifiedName()); } - static class ServiceInstanceComparator implements Comparator { + static class ServiceInstanceComparator implements Comparator, Serializable { @Override public int compare(ServiceInstance obj1, ServiceInstance obj2) { String name1 = StringUtils.join(obj1.getQualifiedName(), ':'); diff --git a/plugins/network-elements/juniper-contrail/src/org/apache/cloudstack/network/contrail/management/ServerEventHandlerImpl.java b/plugins/network-elements/juniper-contrail/src/org/apache/cloudstack/network/contrail/management/ServerEventHandlerImpl.java index 455e6012e43..ec374409fc0 100644 --- a/plugins/network-elements/juniper-contrail/src/org/apache/cloudstack/network/contrail/management/ServerEventHandlerImpl.java +++ b/plugins/network-elements/juniper-contrail/src/org/apache/cloudstack/network/contrail/management/ServerEventHandlerImpl.java @@ -63,10 +63,6 @@ public class ServerEventHandlerImpl implements ServerEventHandler { setClassMap(); } - protected void finalize () { - - } - private void setMethodMap() { _methodMap = new HashMap(); Method methods[] = this.getClass().getMethods(); diff --git a/plugins/network-elements/juniper-contrail/src/org/apache/cloudstack/network/contrail/model/ModelObject.java b/plugins/network-elements/juniper-contrail/src/org/apache/cloudstack/network/contrail/model/ModelObject.java index 71d28ac5867..e43c9db36cd 100644 --- a/plugins/network-elements/juniper-contrail/src/org/apache/cloudstack/network/contrail/model/ModelObject.java +++ b/plugins/network-elements/juniper-contrail/src/org/apache/cloudstack/network/contrail/model/ModelObject.java @@ -18,6 +18,7 @@ package org.apache.cloudstack.network.contrail.model; import java.io.IOException; +import java.io.Serializable; import java.lang.ref.WeakReference; import java.util.TreeSet; @@ -38,7 +39,7 @@ import com.cloud.exception.InternalErrorException; * The update method pushes updates to the contrail API server. */ public interface ModelObject { - public static class ModelReference implements Comparable { + public static class ModelReference implements Comparable, Serializable { WeakReference reference; ModelReference(ModelObject obj) { reference = new WeakReference(obj); @@ -57,8 +58,22 @@ public interface ModelObject { return lhs.compareTo(rhs); } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + + ((reference == null) ? 0 : reference.hashCode()); + return result; + } + @Override public boolean equals(Object other) { + if (this == other) + return true; + if (other == null) + return false; try { ModelReference rhs = (ModelReference) other; return compareTo(rhs) == 0; @@ -69,6 +84,8 @@ public interface ModelObject { public ModelObject get() { return reference.get(); } + + }; public void addSuccessor(ModelObject child); diff --git a/plugins/network-elements/juniper-contrail/src/org/apache/cloudstack/network/contrail/model/ModelObjectBase.java b/plugins/network-elements/juniper-contrail/src/org/apache/cloudstack/network/contrail/model/ModelObjectBase.java index f22c7c546a3..8d48fa10492 100644 --- a/plugins/network-elements/juniper-contrail/src/org/apache/cloudstack/network/contrail/model/ModelObjectBase.java +++ b/plugins/network-elements/juniper-contrail/src/org/apache/cloudstack/network/contrail/model/ModelObjectBase.java @@ -17,11 +17,12 @@ package org.apache.cloudstack.network.contrail.model; +import java.io.Serializable; import java.util.Comparator; import java.util.TreeSet; public abstract class ModelObjectBase implements ModelObject { - public static class UuidComparator implements Comparator { + public static class UuidComparator implements Comparator, Serializable { @Override public int compare(ModelObject lhs, ModelObject rhs) { if (lhs == null) { @@ -78,8 +79,23 @@ public abstract class ModelObjectBase implements ModelObject { _successors.clear(); } + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + + ((_ancestors == null) ? 0 : _ancestors.hashCode()); + result = prime * result + + ((_successors == null) ? 0 : _successors.hashCode()); + return result; + } + @Override public boolean equals(Object rhs) { + if (this == rhs) + return true; + if (rhs == null) + return false; ModelObject other; try { other = (ModelObject) rhs;