This is an automated email from the ASF dual-hosted git repository.
stoty pushed a commit to branch branch-2
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-2 by this push:
new e4b6845f8cf HBASE-28662 Removing missing scanner via REST should
return 404 (#5989)
e4b6845f8cf is described below
commit e4b6845f8cf1ce1f638fef22545d699ed1cf6dfe
Author: Istvan Toth <[email protected]>
AuthorDate: Wed Jun 19 10:02:43 2024 +0200
HBASE-28662 Removing missing scanner via REST should return 404 (#5989)
Signed-off-by: Duo Zhang <[email protected]>
(cherry picked from commit 85bd8eef2c4ff190ce3c248979e61280e2b4d5d5)
---
.../org/apache/hadoop/hbase/rest/ScannerInstanceResource.java | 10 ++++++++++
.../java/org/apache/hadoop/hbase/rest/TestScannerResource.java | 5 +++++
2 files changed, 15 insertions(+)
diff --git
a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/ScannerInstanceResource.java
b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/ScannerInstanceResource.java
index 951cafc8632..28ba60fa19b 100644
---
a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/ScannerInstanceResource.java
+++
b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/ScannerInstanceResource.java
@@ -161,6 +161,11 @@ public class ScannerInstanceResource extends ResourceBase {
}
servlet.getMetrics().incrementRequests(1);
try {
+ if (generator == null) {
+ servlet.getMetrics().incrementFailedGetRequests(1);
+ return Response.status(Response.Status.NOT_FOUND).type(MIMETYPE_TEXT)
+ .entity("Not found" + CRLF).build();
+ }
Cell value = generator.next();
if (value == null) {
if (LOG.isTraceEnabled()) {
@@ -199,6 +204,11 @@ public class ScannerInstanceResource extends ResourceBase {
return Response.status(Response.Status.FORBIDDEN).type(MIMETYPE_TEXT)
.entity("Forbidden" + CRLF).build();
}
+ if (generator == null) {
+ servlet.getMetrics().incrementFailedDeleteRequests(1);
+ return Response.status(Response.Status.NOT_FOUND).type(MIMETYPE_TEXT)
+ .entity("Not found" + CRLF).build();
+ }
if (ScannerResource.delete(id)) {
servlet.getMetrics().incrementSucessfulDeleteRequests(1);
} else {
diff --git
a/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/TestScannerResource.java
b/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/TestScannerResource.java
index c5da2f6e4ff..4ebfce0b508 100644
---
a/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/TestScannerResource.java
+++
b/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/TestScannerResource.java
@@ -387,4 +387,9 @@ public class TestScannerResource {
assertTrue("got " + response.getCode(), response.getCode() == 410);
}
+ @Test
+ public void deleteNonExistent() throws IOException {
+ Response response = client.delete("/" + TABLE +
"/scanner/NONEXISTENT_SCAN");
+ assertEquals(404, response.getCode());
+ }
}