You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by mb...@apache.org on 2015/07/01 18:43:44 UTC

[4/6] hbase git commit: HBASE-13995 ServerName is not fully case insensitive

HBASE-13995 ServerName is not fully case insensitive


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

Branch: refs/heads/0.98
Commit: 4384daea2531d05d0ca16d9016b5316beb4e3fb5
Parents: 1ee6909
Author: Matteo Bertozzi <ma...@cloudera.com>
Authored: Wed Jul 1 09:20:25 2015 -0700
Committer: Matteo Bertozzi <ma...@cloudera.com>
Committed: Wed Jul 1 09:33:47 2015 -0700

----------------------------------------------------------------------
 .../main/java/org/apache/hadoop/hbase/ServerName.java    |  4 ++--
 .../java/org/apache/hadoop/hbase/TestServerName.java     | 11 +++++++++++
 2 files changed, 13 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/4384daea/hbase-client/src/main/java/org/apache/hadoop/hbase/ServerName.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/ServerName.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/ServerName.java
index 47a2b7d..36a67fe 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/ServerName.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/ServerName.java
@@ -229,7 +229,7 @@ public class ServerName implements Comparable<ServerName>, Serializable {
    */
   static String getServerName(String hostName, int port, long startcode) {
     final StringBuilder name = new StringBuilder(hostName.length() + 1 + 5 + 1 + 13);
-    name.append(hostName);
+    name.append(hostName.toLowerCase());
     name.append(SERVERNAME_SEPARATOR);
     name.append(port);
     name.append(SERVERNAME_SEPARATOR);
@@ -314,7 +314,7 @@ public class ServerName implements Comparable<ServerName>, Serializable {
       final ServerName right) {
     if (left == null) return false;
     if (right == null) return false;
-    return left.getHostname().equals(right.getHostname()) &&
+    return left.getHostname().compareToIgnoreCase(right.getHostname()) == 0 &&
       left.getPort() == right.getPort();
   }
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/4384daea/hbase-server/src/test/java/org/apache/hadoop/hbase/TestServerName.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/TestServerName.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/TestServerName.java
index ec89f1c..2c90f34 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/TestServerName.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/TestServerName.java
@@ -107,5 +107,16 @@ public class TestServerName {
       ServerName.getServerStartcodeFromServerName(sn.toString()));
   }
 
+  @Test
+  public void testHostNameCaseSensitivity() {
+    ServerName lower = ServerName.valueOf("www.example.org", 1234, 5678);
+    ServerName upper = ServerName.valueOf("www.EXAMPLE.org", 1234, 5678);
+    assertEquals(0, lower.compareTo(upper));
+    assertEquals(0, upper.compareTo(lower));
+    assertEquals(lower.hashCode(), upper.hashCode());
+    assertTrue(lower.equals(upper));
+    assertTrue(upper.equals(lower));
+    assertTrue(ServerName.isSameHostnameAndPort(lower, upper));
+  }
 }