>From Michael Blow <[email protected]>:

Michael Blow has uploaded this change for review. ( 
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17961 )


Change subject: [NO ISSUE][*DB] Return 404 (not 500) on unknown cluster api path
......................................................................

[NO ISSUE][*DB] Return 404 (not 500) on unknown cluster api path

Change-Id: I2d5a981cc8268a27b36331302997b90f39be7055
---
M 
asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ClusterApiServlet.java
1 file changed, 18 insertions(+), 6 deletions(-)



  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/61/17961/1

diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ClusterApiServlet.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ClusterApiServlet.java
index eaeb082..15cdabf 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ClusterApiServlet.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ClusterApiServlet.java
@@ -29,6 +29,7 @@
 import org.apache.hyracks.api.config.IOption;
 import org.apache.hyracks.api.config.Section;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.api.exceptions.IFormattedException;
 import org.apache.hyracks.control.common.config.ConfigUtils;
 import org.apache.hyracks.control.common.controllers.ControllerConfig;
 import org.apache.hyracks.http.api.IServletRequest;
@@ -36,7 +37,6 @@
 import org.apache.hyracks.http.server.AbstractServlet;
 import org.apache.hyracks.http.server.utils.HttpUtil;
 import org.apache.hyracks.util.JSONUtil;
-import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;

@@ -67,7 +67,6 @@
     @Override
     protected void get(IServletRequest request, IServletResponse response) 
throws IOException {
         HttpUtil.setContentType(response, 
HttpUtil.ContentType.APPLICATION_JSON, request);
-        PrintWriter responseWriter = response.writer();
         try {
             ObjectNode json;
             response.setStatus(HttpResponseStatus.OK);
@@ -81,15 +80,19 @@
                 default:
                     throw new IllegalArgumentException();
             }
+            PrintWriter responseWriter = response.writer();
             JSONUtil.writeNode(responseWriter, json);
         } catch (IllegalArgumentException e) { // NOSONAR - exception not 
logged or rethrown
             sendError(response, HttpResponseStatus.NOT_FOUND);
         } catch (Exception e) {
-            LOGGER.log(Level.INFO, "exception thrown for " + request, e);
-            response.setStatus(HttpResponseStatus.INTERNAL_SERVER_ERROR);
-            responseWriter.write(e.toString());
+            LOGGER.info("exception thrown for {}", request, e);
+            if (e instanceof IFormattedException) {
+                sendError(response, HttpResponseStatus.INTERNAL_SERVER_ERROR, 
(IFormattedException) e);
+            } else {
+                sendError(response, HttpResponseStatus.INTERNAL_SERVER_ERROR, 
e.toString());
+
+            }
         }
-        responseWriter.flush();
     }

     @Override

--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17961
To unsubscribe, or for help writing mail filters, visit 
https://asterix-gerrit.ics.uci.edu/settings

Gerrit-Project: asterixdb
Gerrit-Branch: neo
Gerrit-Change-Id: I2d5a981cc8268a27b36331302997b90f39be7055
Gerrit-Change-Number: 17961
Gerrit-PatchSet: 1
Gerrit-Owner: Michael Blow <[email protected]>
Gerrit-MessageType: newchange

Reply via email to