You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ap...@apache.org on 2017/11/30 02:04:57 UTC

[2/3] hbase git commit: HBASE-19379 TestEndToEndSplitTransaction fails with NPE

HBASE-19379 TestEndToEndSplitTransaction fails with NPE


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/39da0d44
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/39da0d44
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/39da0d44

Branch: refs/heads/branch-1.4
Commit: 39da0d44e0c286d8a4129daf9ed079722b8a8c0c
Parents: fb070f1
Author: Andrew Purtell <ap...@apache.org>
Authored: Wed Nov 29 16:37:07 2017 -0800
Committer: Andrew Purtell <ap...@apache.org>
Committed: Wed Nov 29 17:24:54 2017 -0800

----------------------------------------------------------------------
 .../apache/hadoop/hbase/HRegionLocation.java    | 73 +++++++++++++++-----
 1 file changed, 55 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/39da0d44/hbase-client/src/main/java/org/apache/hadoop/hbase/HRegionLocation.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/HRegionLocation.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/HRegionLocation.java
index 373e76b..ff78ddc 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/HRegionLocation.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/HRegionLocation.java
@@ -61,29 +61,71 @@ public class HRegionLocation implements Comparable<HRegionLocation> {
         + ", hostname=" + this.serverName + ", seqNum=" + seqNum;
   }
 
-  /**
-   * @see java.lang.Object#equals(java.lang.Object)
-   */
   @Override
-  public boolean equals(Object o) {
-    if (this == o) {
+  public int hashCode() {
+    final int prime = 31;
+    int result = 1;
+    result = prime * result + ((regionInfo == null) ? 0 : regionInfo.hashCode());
+    result = prime * result + (int) (seqNum ^ (seqNum >>> 32));
+    result = prime * result + ((serverName == null) ? 0 : serverName.hashCode());
+    return result;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (this == obj) {
       return true;
     }
-    if (o == null) {
+    if (obj == null) {
+      return false;
+    }
+    if (getClass() != obj.getClass()) {
+      return false;
+    }
+    HRegionLocation other = (HRegionLocation) obj;
+    if (regionInfo == null) {
+      if (other.regionInfo != null) {
+        return false;
+      }
+    } else if (!regionInfo.equals(other.regionInfo)) {
       return false;
     }
-    if (!(o instanceof HRegionLocation)) {
+    if (seqNum != other.seqNum) {
       return false;
     }
-    return this.compareTo((HRegionLocation)o) == 0;
+    if (serverName == null) {
+      if (other.serverName != null) {
+        return false;
+      }
+    } else if (!serverName.equals(other.serverName)) {
+      return false;
+    }
+    return true;
   }
 
-  /**
-   * @see java.lang.Object#hashCode()
-   */
   @Override
-  public int hashCode() {
-    return this.serverName.hashCode();
+  public int compareTo(HRegionLocation other) {
+    if (regionInfo == null) {
+      if (other.regionInfo != null) {
+        return 1;
+      }
+    } else {
+      int compare = regionInfo.compareTo(other.regionInfo);
+      if (compare != 0) {
+        return compare;
+      }
+    }
+    if (serverName == null) {
+      if (other.serverName != null) {
+        return 1;
+      }
+    } else {
+      int compare = serverName.compareTo(other.serverName);
+      if (compare != 0) {
+        return compare;
+      }
+    }
+    return Long.compare(seqNum, other.seqNum);
   }
 
   /** @return HRegionInfo */
@@ -113,9 +155,4 @@ public class HRegionLocation implements Comparable<HRegionLocation> {
   public ServerName getServerName() {
     return serverName;
   }
-
-  @Override
-  public int compareTo(HRegionLocation o) {
-    return serverName.compareTo(o.getServerName());
-  }
 }