You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by te...@apache.org on 2011/07/07 18:44:49 UTC
svn commit: r1143915 - in /hbase/trunk: CHANGES.txt
src/main/java/org/apache/hadoop/hbase/HServerAddress.java
Author: tedyu
Date: Thu Jul 7 16:44:49 2011
New Revision: 1143915
URL: http://svn.apache.org/viewvc?rev=1143915&view=rev
Log:
HBASE-4074 When a RS has hostname with uppercase letter, there are two
RS entries in master
Modified:
hbase/trunk/CHANGES.txt
hbase/trunk/src/main/java/org/apache/hadoop/hbase/HServerAddress.java
Modified: hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hbase/trunk/CHANGES.txt?rev=1143915&r1=1143914&r2=1143915&view=diff
==============================================================================
--- hbase/trunk/CHANGES.txt (original)
+++ hbase/trunk/CHANGES.txt Thu Jul 7 16:44:49 2011
@@ -154,6 +154,8 @@ Release 0.91.0 - Unreleased
HBASE-4061 getTableDirs is missing directories to skip
HBASE-3867 when cluster is stopped and server which hosted meta region is
removed from cluster, master breaks down after restarting cluster.
+ HBASE-4074 When a RS has hostname with uppercase letter, there are two
+ RS entries in master (Weihua via Ted Yu)
IMPROVEMENTS
HBASE-3290 Max Compaction Size (Nicolas Spiegelberg via Stack)
Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/HServerAddress.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/HServerAddress.java?rev=1143915&r1=1143914&r2=1143915&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/HServerAddress.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/HServerAddress.java Thu Jul 7 16:44:49 2011
@@ -72,7 +72,7 @@ public class HServerAddress implements W
* @param port Port number
*/
public HServerAddress(final String hostname, final int port) {
- this(new InetSocketAddress(hostname, port));
+ this(getResolvedAddress(new InetSocketAddress(hostname, port)));
}
/**
@@ -80,21 +80,33 @@ public class HServerAddress implements W
* @param other HServerAddress to copy from
*/
public HServerAddress(HServerAddress other) {
- this(new InetSocketAddress(other.getHostname(), other.getPort()));
+ this(getResolvedAddress(new InetSocketAddress(other.getHostname(), other.getPort())));
}
+ private static InetSocketAddress getResolvedAddress(InetSocketAddress address) {
+ String bindAddress = getBindAddressInternal(address);
+ int port = address.getPort();
+ return new InetSocketAddress(bindAddress, port);
+ }
+
/** @return Bind address -- the raw IP, the result of a call to
* {@link InetSocketAddress#getAddress()#getHostAddress()} --
* or null if cannot resolve */
public String getBindAddress() {
- // This returns null if the address is not resolved.
- final InetAddress addr = this.address.getAddress();
- if (addr != null) return addr.getHostAddress();
- LogFactory.getLog(HServerAddress.class).error("Could not resolve the"
- + " DNS name of " + this.address.toString());
- return null;
+ return getBindAddressInternal(address);
}
+ private static String getBindAddressInternal(InetSocketAddress address) {
+ final InetAddress addr = address.getAddress();
+ if (addr != null) {
+ return addr.getHostAddress();
+ } else {
+ LogFactory.getLog(HServerAddress.class).error("Could not resolve the"
+ + " DNS name of " + address.getHostName());
+ return null;
+ }
+ }
+
private void checkBindAddressCanBeResolved() {
if (getBindAddress() == null) {
throw new IllegalArgumentException("Could not resolve the"
@@ -155,7 +167,7 @@ public class HServerAddress implements W
String hostname = in.readUTF();
int port = in.readInt();
if (hostname != null && hostname.length() > 0) {
- this.address = new InetSocketAddress(hostname, port);
+ this.address = getResolvedAddress(new InetSocketAddress(hostname, port));
checkBindAddressCanBeResolved();
createCachedToString();
}
@@ -182,4 +194,4 @@ public class HServerAddress implements W
if (this.address.equals(o.address)) return 0;
return toString().compareTo(o.toString());
}
-}
\ No newline at end of file
+}