diff --git a/CHANGES.txt b/CHANGES.txt
index 1f8735f95e7..1bb7b55fd0d 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -532,6 +532,7 @@ Release 0.21.0 - Unreleased
the region
HBASE-3018 Bulk assignment on startup runs serially through the cluster
servers assigning in bulk to one at a time
+ HBASE-3023 NPE processing server crash in MetaReader. getServerUserRegions
IMPROVEMENTS
HBASE-1760 Cleanup TODOs in HTable
diff --git a/src/main/java/org/apache/hadoop/hbase/catalog/MetaReader.java b/src/main/java/org/apache/hadoop/hbase/catalog/MetaReader.java
index bab471ef946..21a075ac5e5 100644
--- a/src/main/java/org/apache/hadoop/hbase/catalog/MetaReader.java
+++ b/src/main/java/org/apache/hadoop/hbase/catalog/MetaReader.java
@@ -232,7 +232,8 @@ public class MetaReader {
/**
* @param data A .META. table row.
- * @return A pair of the regioninfo and the server address from data
.
+ * @return A pair of the regioninfo and the server address from data
+ * (or null for server address if no address set in .META.).
* @throws IOException
*/
public static Pair metaRowToRegionPair(
@@ -410,7 +411,10 @@ public class MetaReader {
while((result = metaServer.next(scannerid)) != null) {
if (result != null && result.size() > 0) {
Pair pair = metaRowToRegionPair(result);
- if (!pair.getSecond().equals(hsi.getServerAddress())) continue;
+ if (pair.getSecond() == null ||
+ !pair.getSecond().equals(hsi.getServerAddress())) {
+ continue;
+ }
hris.put(pair.getFirst(), result);
}
}
diff --git a/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java b/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java
index 60a159aa4a5..ab3516790df 100644
--- a/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java
+++ b/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java
@@ -111,7 +111,7 @@ public class ServerManager {
String deadServersList = deadservers.toString();
LOG.info("regionservers=" + numServers +
", averageload=" + StringUtils.limitDecimalTo2(averageLoad) +
- ((numDeadServers > 0)? ("deadservers=" + deadServersList): ""));
+ ((numDeadServers > 0)? (", deadservers=" + deadServersList): ""));
}
}