This is an automated email from the ASF dual-hosted git repository. zhangduo pushed a commit to branch branch-3 in repository https://gitbox.apache.org/repos/asf/hbase.git
commit bd9b6d588dd0b07392e823ffc0cae3d9fce1a6b1 Author: Junegunn Choi <[email protected]> AuthorDate: Sat Mar 1 01:07:02 2025 +0900 HBASE-29066 Fix NPE in rits.jsp when regions are not open (#6594) Signed-off-by: Duo Zhang <[email protected]> (cherry picked from commit fd50561a099a5b3b44b209d5b806e70f24c2aa9c) --- .../apache/hadoop/hbase/master/assignment/RegionStateNode.java | 8 ++++++++ hbase-server/src/main/resources/hbase-webapps/master/rits.jsp | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionStateNode.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionStateNode.java index abfe8b40435..402c22ac9ed 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionStateNode.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionStateNode.java @@ -245,6 +245,14 @@ public class RegionStateNode implements Comparable<RegionStateNode> { return regionLocation; } + public String getRegionServerName() { + ServerName sn = getRegionLocation(); + if (sn != null) { + return sn.getServerName(); + } + return null; + } + public State getState() { return state; } diff --git a/hbase-server/src/main/resources/hbase-webapps/master/rits.jsp b/hbase-server/src/main/resources/hbase-webapps/master/rits.jsp index 802a66b5890..41c4ba85700 100644 --- a/hbase-server/src/main/resources/hbase-webapps/master/rits.jsp +++ b/hbase-server/src/main/resources/hbase-webapps/master/rits.jsp @@ -97,7 +97,7 @@ <td><%= regionStateNode.getRegionInfo().getEncodedName() %></td> <td><%= regionStateNode.getRegionInfo().getTable() %></td> <td><%= regionStateNode.getState() %></td> - <td><%= regionStateNode.getRegionLocation().getServerName() %></td> + <td><%= regionStateNode.getRegionServerName() %></td> <% TransitRegionStateProcedure procedure = regionStateNode.getProcedure(); @@ -134,7 +134,7 @@ r.put("region", regionStateNode.getRegionInfo().getEncodedName()); r.put("table", regionStateNode.getRegionInfo().getTable().getNameAsString()); r.put("state", regionStateNode.getState()); - r.put("server", regionStateNode.getRegionLocation().getServerName()); + r.put("server", regionStateNode.getRegionServerName()); TransitRegionStateProcedure procedure = regionStateNode.getProcedure(); if (procedure != null) {
