You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by bs...@apache.org on 2018/11/06 17:31:23 UTC

[geode] branch feature/GEODE-5986 created (now 355527c)

This is an automated email from the ASF dual-hosted git repository.

bschuchardt pushed a change to branch feature/GEODE-5986
in repository https://gitbox.apache.org/repos/asf/geode.git.


      at 355527c  GEODE-5986 Inconsistent equals/hashCode

This branch includes the following new commits:

     new 355527c  GEODE-5986 Inconsistent equals/hashCode

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[geode] 01/01: GEODE-5986 Inconsistent equals/hashCode

Posted by bs...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

bschuchardt pushed a commit to branch feature/GEODE-5986
in repository https://gitbox.apache.org/repos/asf/geode.git

commit 355527c638c6f5ca7fd76332cb726b675abf22ce
Author: Bruce Schuchardt <bs...@pivotal.io>
AuthorDate: Mon Nov 5 14:13:47 2018 -0800

    GEODE-5986 Inconsistent equals/hashCode
    
    Added hashCode and equals methods to classes that were missing one or
    the other.
---
 .../GatewayDeltaForwarderCacheListener.java        |  6 ++++++
 .../callback/SessionExpirationCacheListener.java   |  9 ++++++++
 .../geode/modules/util/DebugCacheListener.java     |  7 ++++++
 .../geode/modules/util/SessionCustomExpiry.java    |  7 ++++++
 .../cache/MonthBasedPartitionResolver.java         |  5 +++++
 .../cache/PartitionedRegionSingleHopDUnitTest.java | 25 ++++++++++++++++++++++
 .../geode/internal/cache/SerializableMonth.java    | 12 +++++++++++
 .../cache/query/internal/LinkedResultSet.java      |  8 +++++++
 .../geode/cache/query/internal/NullToken.java      |  5 +++++
 .../geode/cache/query/internal/ResultsSet.java     |  7 ++++++
 .../query/internal/SelectResultsComparator.java    |  6 ++++++
 .../cache/query/internal/SortedResultSet.java      |  8 +++++++
 .../cache/query/internal/SortedStructSet.java      |  5 +++++
 .../geode/cache/query/internal/Undefined.java      |  7 ++++++
 .../internal/types/ExtendedNumericComparator.java  |  5 +++++
 .../query/internal/types/NumericComparator.java    |  6 ++++++
 .../query/internal/types/TemporalComparator.java   |  6 ++++++
 .../gms/locator/FindCoordinatorResponse.java       |  6 ++++++
 .../gms/messages/InstallViewMessage.java           |  6 ++++++
 .../gms/messages/JoinRequestMessage.java           |  6 ++++++
 .../gms/messages/JoinResponseMessage.java          |  6 ++++++
 .../internal/admin/remote/RemoteApplicationVM.java |  6 ++++++
 .../internal/admin/remote/RemoteGemFireVM.java     | 11 ++++++++++
 .../admin/statalerts/MultiAttrDefinitionImpl.java  | 12 +++++++++++
 .../admin/statalerts/SingleAttrDefinitionImpl.java | 13 +++++++++++
 .../geode/internal/cache/PoolFactoryImpl.java      | 17 +++++++++++++++
 .../internal/cache/xmlcache/CacheXmlGenerator.java |  6 ++++++
 .../geode/internal/jta/TransactionManagerImpl.java | 10 +--------
 .../internal/cli/commands/RebalanceCommand.java    |  5 +++++
 .../management/internal/cli/domain/ClassName.java  |  6 ++++++
 .../internal/cli/functions/RegionFunctionArgs.java |  6 ++++++
 .../src/main/java/hydra/MethExecutorResult.java    |  8 +++++++
 .../cache/CustomerIDPartitionResolver.java         |  6 ++++++
 .../geode/internal/cache/execute/data/Order.java   | 12 ++++++++++-
 .../internal/cache/execute/data/Shipment.java      | 11 +++++++++-
 .../apache/geode/internal/cache/wan/Filter70.java  |  6 ++++++
 .../cache/wan/MyGatewaySenderEventListener.java    |  7 ++++++
 .../cache/wan/MyGatewaySenderEventListener2.java   |  6 ++++++
 .../cache/wan/MyGatewayTransportFilter1.java       |  7 ++++++
 .../cache/wan/MyGatewayTransportFilter2.java       |  7 ++++++
 .../cache/wan/MyGatewayTransportFilter3.java       |  7 ++++++
 .../cache/wan/MyGatewayTransportFilter4.java       |  7 ++++++
 42 files changed, 323 insertions(+), 11 deletions(-)

diff --git a/extensions/geode-modules/src/main/java/org/apache/geode/modules/gatewaydelta/GatewayDeltaForwarderCacheListener.java b/extensions/geode-modules/src/main/java/org/apache/geode/modules/gatewaydelta/GatewayDeltaForwarderCacheListener.java
index b500256..20d8739 100644
--- a/extensions/geode-modules/src/main/java/org/apache/geode/modules/gatewaydelta/GatewayDeltaForwarderCacheListener.java
+++ b/extensions/geode-modules/src/main/java/org/apache/geode/modules/gatewaydelta/GatewayDeltaForwarderCacheListener.java
@@ -170,6 +170,7 @@ public class GatewayDeltaForwarderCacheListener extends CacheListenerAdapter<Str
     return (LocalRegion) region;
   }
 
+  @Override
   public boolean equals(Object obj) {
     // This method is only implemented so that RegionCreator.validateRegion works properly.
     // The CacheListener comparison fails because two of these instances are not equal.
@@ -183,4 +184,9 @@ public class GatewayDeltaForwarderCacheListener extends CacheListenerAdapter<Str
 
     return true;
   }
+
+  @Override
+  public int hashCode() {
+    return GatewayDeltaForwarderCacheListener.class.hashCode();
+  }
 }
diff --git a/extensions/geode-modules/src/main/java/org/apache/geode/modules/session/catalina/callback/SessionExpirationCacheListener.java b/extensions/geode-modules/src/main/java/org/apache/geode/modules/session/catalina/callback/SessionExpirationCacheListener.java
index 232f075..401e46d 100644
--- a/extensions/geode-modules/src/main/java/org/apache/geode/modules/session/catalina/callback/SessionExpirationCacheListener.java
+++ b/extensions/geode-modules/src/main/java/org/apache/geode/modules/session/catalina/callback/SessionExpirationCacheListener.java
@@ -60,6 +60,8 @@ public class SessionExpirationCacheListener extends CacheListenerAdapter<String,
 
   public void init(Properties p) {}
 
+
+  @Override
   public boolean equals(Object obj) {
     // This method is only implemented so that RegionAttributesCreation.sameAs
     // works properly.
@@ -73,4 +75,11 @@ public class SessionExpirationCacheListener extends CacheListenerAdapter<String,
 
     return true;
   }
+
+
+  @Override
+  public int hashCode() {
+    return SessionExpirationCacheListener.class.hashCode();
+  }
+
 }
diff --git a/extensions/geode-modules/src/main/java/org/apache/geode/modules/util/DebugCacheListener.java b/extensions/geode-modules/src/main/java/org/apache/geode/modules/util/DebugCacheListener.java
index 39f9c65..6ffcf5a 100644
--- a/extensions/geode-modules/src/main/java/org/apache/geode/modules/util/DebugCacheListener.java
+++ b/extensions/geode-modules/src/main/java/org/apache/geode/modules/util/DebugCacheListener.java
@@ -64,4 +64,11 @@ public class DebugCacheListener extends CacheListenerAdapter implements Declarab
 
     return true;
   }
+
+
+  @Override
+  public int hashCode() {
+    return DebugCacheListener.class.hashCode();
+  }
+
 }
diff --git a/extensions/geode-modules/src/main/java/org/apache/geode/modules/util/SessionCustomExpiry.java b/extensions/geode-modules/src/main/java/org/apache/geode/modules/util/SessionCustomExpiry.java
index 6a7c799..ffb7cf2 100644
--- a/extensions/geode-modules/src/main/java/org/apache/geode/modules/util/SessionCustomExpiry.java
+++ b/extensions/geode-modules/src/main/java/org/apache/geode/modules/util/SessionCustomExpiry.java
@@ -61,4 +61,11 @@ public class SessionCustomExpiry
 
     return true;
   }
+
+
+  @Override
+  public int hashCode() {
+    return getClass().hashCode();
+  }
+
 }
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/MonthBasedPartitionResolver.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/MonthBasedPartitionResolver.java
index 3949938..afe1e8d 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/MonthBasedPartitionResolver.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/MonthBasedPartitionResolver.java
@@ -62,6 +62,11 @@ class MonthBasedPartitionResolver implements PartitionResolver, Declarable2 {
   }
 
   @Override
+  public int hashCode() {
+    return super.hashCode();
+  }
+
+  @Override
   public String getName() {
     return null;
   }
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionSingleHopDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionSingleHopDUnitTest.java
index 03f6640..d19d184 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionSingleHopDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionSingleHopDUnitTest.java
@@ -36,6 +36,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Objects;
 import java.util.Properties;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
@@ -2000,6 +2001,11 @@ class Customer implements DataSerializable { // TODO: move this to be an inner c
     Customer cust = (Customer) o;
     return (cust.name.equals(name) && cust.address.equals(address));
   }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(name, address);
+  }
 }
 
 
@@ -2040,6 +2046,15 @@ class Order implements DataSerializable {
     }
     return false;
   }
+
+  @Override
+  public int hashCode() {
+    if (orderName == null) {
+      return super.hashCode();
+    }
+    return orderName.hashCode();
+  }
+
 }
 
 
@@ -2080,4 +2095,14 @@ class Shipment implements DataSerializable {
     }
     return false;
   }
+
+
+  @Override
+  public int hashCode() {
+    if (shipmentName == null) {
+      return super.hashCode();
+    }
+    return shipmentName.hashCode();
+  }
+
 }
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/SerializableMonth.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/SerializableMonth.java
index 2670593..1f2ce6e 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/SerializableMonth.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/SerializableMonth.java
@@ -43,6 +43,18 @@ class SerializableMonth implements DataSerializable {
   }
 
   @Override
+  public boolean equals(Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (!(o instanceof SerializableMonth)) {
+      return false;
+    }
+    SerializableMonth that = (SerializableMonth) o;
+    return month == that.month;
+  }
+
+  @Override
   public int hashCode() {
     if (month < 4) {
       return 1;
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/LinkedResultSet.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/LinkedResultSet.java
index 2c11c8f..f643f1d 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/LinkedResultSet.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/LinkedResultSet.java
@@ -60,6 +60,9 @@ public class LinkedResultSet extends java.util.LinkedHashSet
 
   @Override
   public boolean equals(Object other) {
+    if (other == this) {
+      return true;
+    }
     if (!(other instanceof LinkedResultSet)) {
       return false;
     }
@@ -69,6 +72,11 @@ public class LinkedResultSet extends java.util.LinkedHashSet
     return super.equals(other);
   }
 
+  @Override
+  public int hashCode() {
+    return this.elementType.hashCode();
+  }
+
   public void setElementType(ObjectType elementType) {
     if (elementType instanceof StructType)
       throw new IllegalArgumentException(
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/NullToken.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/NullToken.java
index f7ead1f..c1a6f98 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/NullToken.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/NullToken.java
@@ -54,6 +54,11 @@ public class NullToken implements DataSerializableFixedID, Comparable {
   }
 
   @Override
+  public int hashCode() {
+    return NullToken.class.hashCode();
+  }
+
+  @Override
   public int getDSFID() {
     return NULL_TOKEN;
   }
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/ResultsSet.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/ResultsSet.java
index 3b24bcb..90f2778 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/ResultsSet.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/ResultsSet.java
@@ -90,6 +90,9 @@ public class ResultsSet extends HashSet implements SelectResults, DataSerializab
 
   @Override
   public boolean equals(Object other) {
+    if (other == this) {
+      return true;
+    }
     if (!(other instanceof ResultsSet)) {
       return false;
     }
@@ -99,6 +102,10 @@ public class ResultsSet extends HashSet implements SelectResults, DataSerializab
     return super.equals(other);
   }
 
+  @Override
+  public int hashCode() {
+    return this.elementType.hashCode();
+  }
 
   public List asList() {
     return new ArrayList(this);
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/SelectResultsComparator.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/SelectResultsComparator.java
index 138cfb5..7708bca 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/SelectResultsComparator.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/SelectResultsComparator.java
@@ -15,6 +15,7 @@
 package org.apache.geode.cache.query.internal;
 
 import java.util.Comparator;
+import java.util.Objects;
 
 import org.apache.geode.cache.query.SelectResults;
 
@@ -53,4 +54,9 @@ class SelectResultsComparator implements Comparator {
   public boolean equals(Object o1) {
     return this == o1;
   }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(this);
+  }
 }
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/SortedResultSet.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/SortedResultSet.java
index 7ad05aa..4658d97 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/SortedResultSet.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/SortedResultSet.java
@@ -69,6 +69,9 @@ public class SortedResultSet extends TreeSet
 
   @Override
   public boolean equals(Object other) {
+    if (other == this) {
+      return true;
+    }
     if (!(other instanceof SortedResultSet)) {
       return false;
     }
@@ -78,6 +81,11 @@ public class SortedResultSet extends TreeSet
     return super.equals(other);
   }
 
+  @Override
+  public int hashCode() {
+    return this.elementType.hashCode();
+  }
+
   public void setElementType(ObjectType elementType) {
     if (elementType instanceof StructType)
       throw new IllegalArgumentException(
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/SortedStructSet.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/SortedStructSet.java
index 9bde461..98fa748 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/SortedStructSet.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/SortedStructSet.java
@@ -91,6 +91,11 @@ public class SortedStructSet extends TreeSet
     return super.equals(other);
   }
 
+  @Override
+  public int hashCode() {
+    return super.hashCode();
+  }
+
   /** Add a Struct */
   @Override
   public boolean add(Object obj) {
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/Undefined.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/Undefined.java
index 709f661..616eed9 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/Undefined.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/Undefined.java
@@ -78,6 +78,13 @@ public class Undefined implements DataSerializableFixedID, Comparable, Serializa
   }
 
   @Override
+  public int hashCode() {
+    return Undefined.class.hashCode();
+  }
+
+
+
+  @Override
   public Version[] getSerializationVersions() {
     return null;
   }
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/types/ExtendedNumericComparator.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/types/ExtendedNumericComparator.java
index 8b42b19..61991cc 100755
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/types/ExtendedNumericComparator.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/types/ExtendedNumericComparator.java
@@ -32,6 +32,11 @@ public class ExtendedNumericComparator extends NumericComparator implements Comp
     return obj instanceof ExtendedNumericComparator;
   }
 
+  @Override
+  public int hashCode() {
+    return ExtendedNumericComparator.class.hashCode();
+  }
+
   public int compare(Object obj1, Object obj2) {
     if (obj1.getClass() != obj2.getClass() && (obj1 instanceof Number && obj2 instanceof Number)) {
       return super.compare(obj1, obj2);
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/types/NumericComparator.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/types/NumericComparator.java
index c2b58e2..1f9fead 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/types/NumericComparator.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/types/NumericComparator.java
@@ -32,6 +32,12 @@ class NumericComparator implements Comparator {
     return obj instanceof NumericComparator;
   }
 
+  @Override
+  public int hashCode() {
+    return NumericComparator.class.hashCode();
+  }
+
+
   // throws ClassCastExcepton if obj1 or obj2 is not a Number
   public int compare(Object obj1, Object obj2) {
     Number num1 = (Number) obj1;
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/types/TemporalComparator.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/types/TemporalComparator.java
index 5eb2753..9de1322 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/types/TemporalComparator.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/types/TemporalComparator.java
@@ -33,6 +33,12 @@ class TemporalComparator implements Comparator {
     return obj instanceof TemporalComparator;
   }
 
+  @Override
+  public int hashCode() {
+    return TemporalComparator.class.hashCode();
+  }
+
+
   // throws ClassCastExcepton if obj1 or obj2 is not a java.util.Date or subclass
   public int compare(Object obj1, Object obj2) {
     java.util.Date date1 = (java.util.Date) obj1;
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/locator/FindCoordinatorResponse.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/locator/FindCoordinatorResponse.java
index ec4b101..5d67d8f 100755
--- a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/locator/FindCoordinatorResponse.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/locator/FindCoordinatorResponse.java
@@ -19,6 +19,7 @@ import java.io.DataOutput;
 import java.io.IOException;
 import java.util.Arrays;
 import java.util.HashSet;
+import java.util.Objects;
 import java.util.Set;
 
 import org.apache.geode.DataSerializer;
@@ -183,6 +184,11 @@ public class FindCoordinatorResponse extends HighPriorityDistributionMessage
   }
 
   @Override
+  public int hashCode() {
+    return Objects.hash(senderId, view, registrants, requestId);
+  }
+
+  @Override
   public boolean equals(Object obj) {
     if (this == obj)
       return true;
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/messages/InstallViewMessage.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/messages/InstallViewMessage.java
index 7dca4be..3337bc7 100755
--- a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/messages/InstallViewMessage.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/messages/InstallViewMessage.java
@@ -17,6 +17,7 @@ package org.apache.geode.distributed.internal.membership.gms.messages;
 import java.io.DataInput;
 import java.io.DataOutput;
 import java.io.IOException;
+import java.util.Objects;
 
 import org.apache.geode.DataSerializer;
 import org.apache.geode.distributed.internal.ClusterDistributionManager;
@@ -107,6 +108,11 @@ public class InstallViewMessage extends HighPriorityDistributionMessage {
   }
 
   @Override
+  public int hashCode() {
+    return Objects.hash(view, previousViewId);
+  }
+
+  @Override
   public boolean equals(Object obj) {
     if (this == obj)
       return true;
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/messages/JoinRequestMessage.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/messages/JoinRequestMessage.java
index c8e88fc..1c565d5 100755
--- a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/messages/JoinRequestMessage.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/messages/JoinRequestMessage.java
@@ -17,6 +17,7 @@ package org.apache.geode.distributed.internal.membership.gms.messages;
 import java.io.DataInput;
 import java.io.DataOutput;
 import java.io.IOException;
+import java.util.Objects;
 
 import org.apache.geode.DataSerializer;
 import org.apache.geode.distributed.internal.ClusterDistributionManager;
@@ -103,6 +104,11 @@ public class JoinRequestMessage extends HighPriorityDistributionMessage {
   }
 
   @Override
+  public int hashCode() {
+    return Objects.hash(memberID);
+  }
+
+  @Override
   public boolean equals(Object obj) {
     if (this == obj)
       return true;
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/messages/JoinResponseMessage.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/messages/JoinResponseMessage.java
index dd718ab..b97d11a 100755
--- a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/messages/JoinResponseMessage.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/messages/JoinResponseMessage.java
@@ -18,6 +18,7 @@ import java.io.DataInput;
 import java.io.DataOutput;
 import java.io.IOException;
 import java.util.Arrays;
+import java.util.Objects;
 
 import org.apache.geode.DataSerializer;
 import org.apache.geode.distributed.internal.ClusterDistributionManager;
@@ -134,6 +135,11 @@ public class JoinResponseMessage extends HighPriorityDistributionMessage {
   }
 
   @Override
+  public int hashCode() {
+    return Objects.hash(memberID);
+  }
+
+  @Override
   public boolean equals(Object obj) {
     if (this == obj)
       return true;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/admin/remote/RemoteApplicationVM.java b/geode-core/src/main/java/org/apache/geode/internal/admin/remote/RemoteApplicationVM.java
index 2a4a52e..18e5c06 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/admin/remote/RemoteApplicationVM.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/admin/remote/RemoteApplicationVM.java
@@ -16,6 +16,8 @@
 
 package org.apache.geode.internal.admin.remote;
 
+import java.util.Objects;
+
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.admin.Alert;
 import org.apache.geode.internal.admin.ApplicationVM;
@@ -54,4 +56,8 @@ public class RemoteApplicationVM extends RemoteGemFireVM implements ApplicationV
     }
   }
 
+  @Override
+  public int hashCode() {
+    return Objects.hash(agent, id);
+  }
 }
diff --git a/geode-core/src/main/java/org/apache/geode/internal/admin/remote/RemoteGemFireVM.java b/geode-core/src/main/java/org/apache/geode/internal/admin/remote/RemoteGemFireVM.java
index ba61bbd..e611495 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/admin/remote/RemoteGemFireVM.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/admin/remote/RemoteGemFireVM.java
@@ -139,6 +139,17 @@ public abstract class RemoteGemFireVM implements GemFireVM {
     return vmName;
   }
 
+  @Override
+  public boolean equals(Object object) {
+    if (this == object) {
+      return true;
+    }
+    if (object instanceof RemoteGemFireVM) {
+      return this.id.equals(((RemoteGemFireVM) object).id);
+    }
+    return false;
+  }
+
   @Override // GemStoneAddition
   public int hashCode() {
     return this.id.hashCode();
diff --git a/geode-core/src/main/java/org/apache/geode/internal/admin/statalerts/MultiAttrDefinitionImpl.java b/geode-core/src/main/java/org/apache/geode/internal/admin/statalerts/MultiAttrDefinitionImpl.java
index 36bf73a..35f4937 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/admin/statalerts/MultiAttrDefinitionImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/admin/statalerts/MultiAttrDefinitionImpl.java
@@ -56,6 +56,18 @@ public class MultiAttrDefinitionImpl implements StatAlertDefinition {
     return getId();
   }
 
+  @Override
+  public boolean equals(Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (!(o instanceof MultiAttrDefinitionImpl)) {
+      return false;
+    }
+    MultiAttrDefinitionImpl that = (MultiAttrDefinitionImpl) o;
+    return _id == that._id;
+  }
+
   public boolean verify(StatisticsFactory factory) {
     if (statisticInfo == null || statisticInfo.length == 0) {
       // System.out.println("No attributes defined for this definition.");
diff --git a/geode-core/src/main/java/org/apache/geode/internal/admin/statalerts/SingleAttrDefinitionImpl.java b/geode-core/src/main/java/org/apache/geode/internal/admin/statalerts/SingleAttrDefinitionImpl.java
index 59de3a2..470d2e9 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/admin/statalerts/SingleAttrDefinitionImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/admin/statalerts/SingleAttrDefinitionImpl.java
@@ -56,6 +56,19 @@ public class SingleAttrDefinitionImpl implements StatAlertDefinition {
     return getId();
   }
 
+  @Override
+  public boolean equals(Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (!(o instanceof MultiAttrDefinitionImpl)) {
+      return false;
+    }
+    MultiAttrDefinitionImpl that = (MultiAttrDefinitionImpl) o;
+    return _id == that._id;
+  }
+
+
   public boolean verify(StatisticsFactory factory) {
     boolean result = false;
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/PoolFactoryImpl.java b/geode-core/src/main/java/org/apache/geode/internal/cache/PoolFactoryImpl.java
index b4ff4b0..d67abf3 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/PoolFactoryImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/PoolFactoryImpl.java
@@ -370,6 +370,11 @@ public class PoolFactoryImpl implements PoolFactory {
         && Objects.equals(new HashSet(locatorAddresses), new HashSet(that.locatorAddresses));
   }
 
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributes, locatorAddresses);
+  }
+
   /**
    * Not a true pool just the attributes. Serialization is used by unit tests
    */
@@ -626,6 +631,18 @@ public class PoolFactoryImpl implements PoolFactory {
     }
 
     @Override
+    public int hashCode() {
+      return Objects
+          .hash(socketConnectTimeout, connectionTimeout, connectionLifetime, socketBufferSize,
+              threadLocalConnections, readTimeout, minConnections, maxConnections, idleTimeout,
+              retryAttempts, pingInterval, statisticInterval, queueEnabled, prSingleHopEnabled,
+              queueRedundancyLevel, queueMessageTrackingTimeout, queueAckInterval,
+              subscriptionTimeoutMultipler, serverGroup, multiuserSecureModeEnabled, locators,
+              servers,
+              startDisabled, locatorCallback, gatewaySender, gateway);
+    }
+
+    @Override
     public boolean equals(Object o) {
       if (this == o) {
         return true;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/xmlcache/CacheXmlGenerator.java b/geode-core/src/main/java/org/apache/geode/internal/cache/xmlcache/CacheXmlGenerator.java
index 13922d6..cf40349 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/xmlcache/CacheXmlGenerator.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/xmlcache/CacheXmlGenerator.java
@@ -1166,9 +1166,15 @@ public class CacheXmlGenerator extends CacheXml implements XMLReader {
       return (((Region) o1).getFullPath().compareTo(((Region) o2).getFullPath()));
     }
 
+    @Override
     public boolean equals(Object anObj) {
       return ((Region) this).getFullPath().equals(((Region) anObj).getFullPath());
     }
+
+    @Override
+    public int hashCode() {
+      return ((Region) this).getFullPath().hashCode();
+    }
   }
 
   /**
diff --git a/geode-core/src/main/java/org/apache/geode/internal/jta/TransactionManagerImpl.java b/geode-core/src/main/java/org/apache/geode/internal/jta/TransactionManagerImpl.java
index 3a24323..dc489cb 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/jta/TransactionManagerImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/jta/TransactionManagerImpl.java
@@ -889,14 +889,6 @@ public class TransactionManagerImpl implements TransactionManager, Serializable
       GlobalTransaction gtx2 = (GlobalTransaction) obj2;
       return gtx1.compare(gtx2);
     }
-
-    /**
-     * Overwrite default equals implementation
-     */
-    @Override
-    public boolean equals(Object o1) {
-      return this == o1;
-    }
   }
 
   /**
@@ -912,7 +904,7 @@ public class TransactionManagerImpl implements TransactionManager, Serializable
       LogWriter writer = TransactionUtils.getLogWriter();
       if (writer.infoEnabled())
         writer.info(
-            "Exception While cleaning thread before re statrup");
+            "Exception While cleaning thread before re startup");
     }
     /*
      * try { transactionManager.cleanUpThread.join(); } catch (Exception e) { e.printStackTrace(); }
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/RebalanceCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/RebalanceCommand.java
index 28de976..4f1d551 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/RebalanceCommand.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/RebalanceCommand.java
@@ -606,6 +606,11 @@ public class RebalanceCommand extends InternalGfshCommand {
     public boolean equals(Object o2) {
       return o2 != null && this.region.equals(((MemberPRInfo) o2).region);
     }
+
+    @Override
+    public int hashCode() {
+      return this.region.hashCode();
+    }
   }
 
   private List<MemberPRInfo> getMemberRegionList(InternalCache cache,
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/domain/ClassName.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/domain/ClassName.java
index 1555c05..a554f9f 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/domain/ClassName.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/domain/ClassName.java
@@ -17,6 +17,7 @@ package org.apache.geode.management.internal.cli.domain;
 
 import java.io.IOException;
 import java.io.Serializable;
+import java.util.Objects;
 import java.util.Properties;
 import java.util.regex.Pattern;
 
@@ -95,6 +96,11 @@ public class ClassName<T> implements Serializable {
   }
 
   @Override
+  public int hashCode() {
+    return Objects.hash(className, initProperties);
+  }
+
+  @Override
   public boolean equals(Object o) {
     if (o == null) {
       return false;
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/RegionFunctionArgs.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/RegionFunctionArgs.java
index 5b06ce3..1d2941e 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/RegionFunctionArgs.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/RegionFunctionArgs.java
@@ -19,6 +19,7 @@ import java.io.Serializable;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashSet;
+import java.util.Objects;
 import java.util.Set;
 import java.util.stream.Collectors;
 
@@ -490,6 +491,11 @@ public class RegionFunctionArgs implements Serializable {
     }
 
     @Override
+    public int hashCode() {
+      return Objects.hash(time, action);
+    }
+
+    @Override
     public boolean equals(Object object) {
       if (object == null) {
         return false;
diff --git a/geode-dunit/src/main/java/hydra/MethExecutorResult.java b/geode-dunit/src/main/java/hydra/MethExecutorResult.java
index 8c005d0..1adc765 100644
--- a/geode-dunit/src/main/java/hydra/MethExecutorResult.java
+++ b/geode-dunit/src/main/java/hydra/MethExecutorResult.java
@@ -38,6 +38,10 @@ public class MethExecutorResult implements Serializable {
       return o != null && this.getClass().equals(o.getClass());
     }
 
+    public int hashCode() {
+      return this.getClass().hashCode();
+    }
+
     public String toString() {
       return "EXCEPTION_OCCURRED";
     }
@@ -52,6 +56,10 @@ public class MethExecutorResult implements Serializable {
       return o != null && this.getClass().equals(o.getClass());
     }
 
+    public int hashCode() {
+      return this.getClass().hashCode();
+    }
+
     public String toString() {
       return "NONSERIALIZABLE_EXCEPTION";
     }
diff --git a/geode-dunit/src/main/java/org/apache/geode/internal/cache/CustomerIDPartitionResolver.java b/geode-dunit/src/main/java/org/apache/geode/internal/cache/CustomerIDPartitionResolver.java
index 19ae77b..70f425a 100755
--- a/geode-dunit/src/main/java/org/apache/geode/internal/cache/CustomerIDPartitionResolver.java
+++ b/geode-dunit/src/main/java/org/apache/geode/internal/cache/CustomerIDPartitionResolver.java
@@ -15,6 +15,7 @@
 package org.apache.geode.internal.cache;
 
 import java.io.Serializable;
+import java.util.Objects;
 
 import org.apache.geode.cache.EntryOperation;
 import org.apache.geode.cache.PartitionResolver;
@@ -61,6 +62,7 @@ public class CustomerIDPartitionResolver implements PartitionResolver {
 
   public void close() {}
 
+  @Override
   public boolean equals(Object o) {
     if (this == o)
       return true;
@@ -73,4 +75,8 @@ public class CustomerIDPartitionResolver implements PartitionResolver {
 
   }
 
+  @Override
+  public int hashCode() {
+    return Objects.hash(id);
+  }
 }
diff --git a/geode-dunit/src/main/java/org/apache/geode/internal/cache/execute/data/Order.java b/geode-dunit/src/main/java/org/apache/geode/internal/cache/execute/data/Order.java
index d23f0e2..2f7e025 100644
--- a/geode-dunit/src/main/java/org/apache/geode/internal/cache/execute/data/Order.java
+++ b/geode-dunit/src/main/java/org/apache/geode/internal/cache/execute/data/Order.java
@@ -23,7 +23,7 @@ import org.apache.geode.DataSerializer;
 import org.apache.geode.internal.cache.execute.PRColocationDUnitTestHelper;
 
 public class Order implements DataSerializable {
-  String orderName;
+  private String orderName;
 
   public Order() {
 
@@ -41,10 +41,12 @@ public class Order implements DataSerializable {
     DataSerializer.writeString(this.orderName, out);
   }
 
+  @Override
   public String toString() {
     return this.orderName;
   }
 
+  @Override
   public boolean equals(Object obj) {
     if (this == obj)
       return true;
@@ -57,4 +59,12 @@ public class Order implements DataSerializable {
     }
     return false;
   }
+
+  @Override
+  public int hashCode() {
+    if (orderName == null) {
+      return super.hashCode();
+    }
+    return orderName.hashCode();
+  }
 }
diff --git a/geode-dunit/src/main/java/org/apache/geode/internal/cache/execute/data/Shipment.java b/geode-dunit/src/main/java/org/apache/geode/internal/cache/execute/data/Shipment.java
index 25ff4c9..b053c00 100644
--- a/geode-dunit/src/main/java/org/apache/geode/internal/cache/execute/data/Shipment.java
+++ b/geode-dunit/src/main/java/org/apache/geode/internal/cache/execute/data/Shipment.java
@@ -23,7 +23,7 @@ import org.apache.geode.DataSerializer;
 import org.apache.geode.internal.cache.execute.PRColocationDUnitTestHelper;
 
 public class Shipment implements DataSerializable {
-  String shipmentName;
+  private String shipmentName;
 
   public Shipment() {
 
@@ -57,4 +57,13 @@ public class Shipment implements DataSerializable {
     }
     return false;
   }
+
+  @Override
+  public int hashCode() {
+    if (shipmentName == null) {
+      return super.hashCode();
+    }
+    return shipmentName.hashCode();
+  }
+
 }
diff --git a/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/Filter70.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/Filter70.java
index 43f59cc..ceefdae 100644
--- a/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/Filter70.java
+++ b/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/Filter70.java
@@ -15,6 +15,7 @@
 package org.apache.geode.internal.cache.wan;
 
 import java.io.Serializable;
+import java.util.Objects;
 
 import org.apache.geode.cache.wan.GatewayEventFilter;
 import org.apache.geode.cache.wan.GatewayQueueEvent;
@@ -58,4 +59,9 @@ public class Filter70 implements GatewayEventFilter, Serializable {
     Filter70 filter = (Filter70) obj;
     return this.Id.equals(filter.Id);
   }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(Id);
+  }
 }
diff --git a/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewaySenderEventListener.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewaySenderEventListener.java
index 548df52..48097b1 100644
--- a/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewaySenderEventListener.java
+++ b/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewaySenderEventListener.java
@@ -18,6 +18,7 @@ import java.io.Serializable;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 
 import org.apache.geode.cache.asyncqueue.AsyncEvent;
 import org.apache.geode.cache.asyncqueue.AsyncEventListener;
@@ -67,6 +68,12 @@ public class MyGatewaySenderEventListener implements AsyncEventListener, Seriali
   }
 
   @Override
+  public int hashCode() {
+    return Objects.hash(id);
+  }
+
+
+  @Override
   public String toString() {
     return id;
   }
diff --git a/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewaySenderEventListener2.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewaySenderEventListener2.java
index e8632eb..f5e15fe 100644
--- a/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewaySenderEventListener2.java
+++ b/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewaySenderEventListener2.java
@@ -18,6 +18,7 @@ import java.io.Serializable;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 
 import org.apache.geode.cache.asyncqueue.AsyncEvent;
 import org.apache.geode.cache.asyncqueue.AsyncEventListener;
@@ -66,6 +67,11 @@ public class MyGatewaySenderEventListener2 implements AsyncEventListener, Serial
   }
 
   @Override
+  public int hashCode() {
+    return Objects.hash(id);
+  }
+
+  @Override
   public String toString() {
     return id;
   }
diff --git a/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewayTransportFilter1.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewayTransportFilter1.java
index 100c910..d5570aa 100644
--- a/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewayTransportFilter1.java
+++ b/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewayTransportFilter1.java
@@ -17,6 +17,7 @@ package org.apache.geode.internal.cache.wan;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.Serializable;
+import java.util.Objects;
 
 import org.apache.geode.cache.wan.GatewayTransportFilter;
 
@@ -54,4 +55,10 @@ public class MyGatewayTransportFilter1 implements GatewayTransportFilter, Serial
     MyGatewayTransportFilter1 filter = (MyGatewayTransportFilter1) obj;
     return this.Id.equals(filter.Id);
   }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(Id);
+  }
+
 }
diff --git a/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewayTransportFilter2.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewayTransportFilter2.java
index 43f7eb6..3b5d328 100644
--- a/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewayTransportFilter2.java
+++ b/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewayTransportFilter2.java
@@ -17,6 +17,7 @@ package org.apache.geode.internal.cache.wan;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.Serializable;
+import java.util.Objects;
 
 import org.apache.geode.cache.wan.GatewayTransportFilter;
 
@@ -53,4 +54,10 @@ public class MyGatewayTransportFilter2 implements GatewayTransportFilter, Serial
     MyGatewayTransportFilter2 filter = (MyGatewayTransportFilter2) obj;
     return this.Id.equals(filter.Id);
   }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(Id);
+  }
+
 }
diff --git a/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewayTransportFilter3.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewayTransportFilter3.java
index eaf1686..bfb3fe4 100644
--- a/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewayTransportFilter3.java
+++ b/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewayTransportFilter3.java
@@ -17,6 +17,7 @@ package org.apache.geode.internal.cache.wan;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.Serializable;
+import java.util.Objects;
 
 import org.apache.geode.cache.wan.GatewayTransportFilter;
 
@@ -53,4 +54,10 @@ public class MyGatewayTransportFilter3 implements GatewayTransportFilter, Serial
     MyGatewayTransportFilter3 filter = (MyGatewayTransportFilter3) obj;
     return this.Id.equals(filter.Id);
   }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(Id);
+  }
+
 }
diff --git a/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewayTransportFilter4.java b/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewayTransportFilter4.java
index 4ab83e8..473a9b5 100644
--- a/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewayTransportFilter4.java
+++ b/geode-junit/src/main/java/org/apache/geode/internal/cache/wan/MyGatewayTransportFilter4.java
@@ -17,6 +17,7 @@ package org.apache.geode.internal.cache.wan;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.Serializable;
+import java.util.Objects;
 
 import org.apache.geode.cache.wan.GatewayTransportFilter;
 
@@ -53,4 +54,10 @@ public class MyGatewayTransportFilter4 implements GatewayTransportFilter, Serial
     MyGatewayTransportFilter4 filter = (MyGatewayTransportFilter4) obj;
     return this.Id.equals(filter.Id);
   }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(Id);
+  }
+
 }