This is an automated email from the ASF dual-hosted git repository.
stoty pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/master by this push:
new 85bd8eef2c4 HBASE-28662 Removing missing scanner via REST should
return 404 (#5989)
85bd8eef2c4 is described below
commit 85bd8eef2c4ff190ce3c248979e61280e2b4d5d5
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]>
---
.../org/apache/hadoop/hbase/rest/ScannerInstanceResource.java | 10 ++++++++++
.../java/org/apache/hadoop/hbase/rest/TestScannerResource.java | 6 ++++++
2 files changed, 16 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 4e23c708ff1..46be9a14960 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
@@ -393,4 +393,10 @@ public class TestScannerResource {
response = client.get(scannerURI, Constants.MIMETYPE_PROTOBUF);
assertEquals(410, response.getCode());
}
+
+ @Test
+ public void deleteNonExistent() throws IOException {
+ Response response = client.delete("/" + TABLE +
"/scanner/NONEXISTENT_SCAN");
+ assertEquals(404, response.getCode());
+ }
}