Add sendError() to AbstractServlet

Change-Id: I24a1d5a6d06f37a9a02056b829541ce96a38b197
Reviewed-on: https://asterix-gerrit.ics.uci.edu/1827
Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
BAD: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Till Westmann <tillw@apache.org>
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 1030686..3c41165 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
@@ -91,10 +91,25 @@
         }
     }
 
-    protected void notAllowed(HttpMethod method, IServletResponse response) throws IOException {
-        response.setStatus(HttpResponseStatus.METHOD_NOT_ALLOWED);
+    protected void sendError(IServletResponse response, HttpResponseStatus status, String message)
+            throws IOException {
+        response.setStatus(status);
         HttpUtil.setContentType(response, HttpUtil.ContentType.TEXT_PLAIN, HttpUtil.Encoding.UTF8);
-        response.writer().write("Method " + method + " not allowed for the requested resource.\n");
+        if (message != null) {
+            response.writer().println(message);
+        }
+        if (LOGGER.isLoggable(Level.INFO)) {
+            LOGGER.info("sendError: status=" + status + ", message=" + message);
+        }
+    }
+
+    protected void sendError(IServletResponse response, HttpResponseStatus status) throws IOException {
+        sendError(response, status, null);
+    }
+
+    protected void notAllowed(HttpMethod method, IServletResponse response) throws IOException {
+        sendError(response, HttpResponseStatus.METHOD_NOT_ALLOWED,
+                "Method " + method + " not allowed for the requested resource.");
     }
 
     @SuppressWarnings("squid:S1172")
@@ -168,4 +183,5 @@
     public String toString() {
         return this.getClass().getSimpleName() + Arrays.toString(paths);
     }
+
 }