From 20d0a3269154b3053aec46d68e2dd055d758e69f Mon Sep 17 00:00:00 2001 From: KevinSmile Date: Sat, 19 Sep 2020 19:45:10 +0530 Subject: [PATCH] HBASE-24481 REST - Fix incorrect response code of get-regions in rest api Closes #2425 Signed-off-by: Viraj Jasani --- .../org/apache/hadoop/hbase/rest/RegionsResource.java | 3 +++ .../org/apache/hadoop/hbase/rest/TestTableResource.java | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RegionsResource.java b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RegionsResource.java index 100dfd5de23..abb3aac7d80 100644 --- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RegionsResource.java +++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RegionsResource.java @@ -77,6 +77,9 @@ public class RegionsResource extends ResourceBase { servlet.getMetrics().incrementRequests(1); try { TableName tableName = TableName.valueOf(tableResource.getName()); + if (!tableResource.exists()) { + throw new TableNotFoundException(tableName); + } TableInfoModel model = new TableInfoModel(tableName.getNameAsString()); Connection connection = ConnectionFactory.createConnection(servlet.getConfiguration()); diff --git a/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/TestTableResource.java b/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/TestTableResource.java index 2551ee80325..443ebe3af69 100644 --- a/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/TestTableResource.java +++ b/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/TestTableResource.java @@ -257,4 +257,13 @@ public class TestTableResource { checkTableInfo(model); } + @Test + public void testTableNotFound() throws IOException { + String notExistTable = "notexist"; + Response response1 = client.get("/" + notExistTable + "/schema", Constants.MIMETYPE_JSON); + assertEquals(404, response1.getCode()); + Response response2 = client.get("/" + notExistTable + "/regions", Constants.MIMETYPE_XML); + assertEquals(404, response2.getCode()); + } + }