Till Westmann has uploaded a new change for review.

  https://asterix-gerrit.ics.uci.edu/1626

Change subject: Provide error message with 405 status code.
......................................................................

Provide error message with 405 status code.

Change-Id: I6aa416828e0001c1c4ef9260390b2f950e899533
---
M 
hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/AbstractServlet.java
1 file changed, 15 insertions(+), 7 deletions(-)


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

diff --git 
a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/AbstractServlet.java
 
b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/AbstractServlet.java
index 252328c..d029bbc 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/AbstractServlet.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/AbstractServlet.java
@@ -18,6 +18,7 @@
  */
 package org.apache.hyracks.http.server;
 
+import java.io.IOException;
 import java.util.Arrays;
 import java.util.concurrent.ConcurrentMap;
 import java.util.logging.Level;
@@ -26,6 +27,7 @@
 import org.apache.hyracks.http.api.IServlet;
 import org.apache.hyracks.http.api.IServletRequest;
 import org.apache.hyracks.http.api.IServletResponse;
+import org.apache.hyracks.http.server.utils.HttpUtil;
 
 import io.netty.handler.codec.http.HttpHeaderNames;
 import io.netty.handler.codec.http.HttpMethod;
@@ -81,7 +83,7 @@
             } else if (HttpMethod.OPTIONS.equals(method)) {
                 options(request, response);
             } else {
-                response.setStatus(HttpResponseStatus.METHOD_NOT_ALLOWED);
+                notAllowed(method, response);
             }
         } catch (Exception e) {
             LOGGER.log(Level.WARNING, "Unhandled exception", e);
@@ -89,40 +91,46 @@
         }
     }
 
+    protected void notAllowed(HttpMethod method, IServletResponse response) 
throws IOException {
+        response.setStatus(HttpResponseStatus.METHOD_NOT_ALLOWED);
+        HttpUtil.setContentType(response, HttpUtil.ContentType.TEXT_PLAIN, 
HttpUtil.Encoding.UTF8);
+        response.writer().write("Method " + method + " not allowed for the 
requested resource.\n");
+    }
+
     @SuppressWarnings("squid:S1172")
     protected void get(IServletRequest request, IServletResponse response) 
throws Exception {
         // designed to be extended but an error in standard case
-        response.setStatus(HttpResponseStatus.METHOD_NOT_ALLOWED);
+        notAllowed(HttpMethod.GET, response);
     }
 
     @SuppressWarnings("squid:S1172")
     protected void head(IServletRequest request, IServletResponse response) 
throws Exception {
         // designed to be extended but an error in standard case
-        response.setStatus(HttpResponseStatus.METHOD_NOT_ALLOWED);
+        notAllowed(HttpMethod.HEAD, response);
     }
 
     @SuppressWarnings("squid:S1172")
     protected void post(IServletRequest request, IServletResponse response) 
throws Exception {
         // designed to be extended but an error in standard case
-        response.setStatus(HttpResponseStatus.METHOD_NOT_ALLOWED);
+        notAllowed(HttpMethod.POST, response);
     }
 
     @SuppressWarnings("squid:S1172")
     protected void put(IServletRequest request, IServletResponse response) 
throws Exception {
         // designed to be extended but an error in standard case
-        response.setStatus(HttpResponseStatus.METHOD_NOT_ALLOWED);
+        notAllowed(HttpMethod.PUT, response);
     }
 
     @SuppressWarnings("squid:S1172")
     protected void delete(IServletRequest request, IServletResponse response) 
throws Exception {
         // designed to be extended but an error in standard case
-        response.setStatus(HttpResponseStatus.METHOD_NOT_ALLOWED);
+        notAllowed(HttpMethod.DELETE, response);
     }
 
     @SuppressWarnings("squid:S1172")
     protected void options(IServletRequest request, IServletResponse response) 
throws Exception {
         // designed to be extended but an error in standard case
-        response.setStatus(HttpResponseStatus.METHOD_NOT_ALLOWED);
+        notAllowed(HttpMethod.OPTIONS, response);
     }
 
     public String host(IServletRequest request) {

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1626
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6aa416828e0001c1c4ef9260390b2f950e899533
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Till Westmann <[email protected]>

Reply via email to