Shutdown Http server executor on stop

Change-Id: I5e177aaa3716110de211a7538b8c40b0d1f28b7c
Reviewed-on: https://asterix-gerrit.ics.uci.edu/1543
Reviewed-by: Till Westmann <tillw@apache.org>
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>
diff --git a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpServer.java b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpServer.java
index 2f35b6a..8fe2b4f 100644
--- a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpServer.java
+++ b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpServer.java
@@ -201,6 +201,15 @@
     protected void doStop() throws InterruptedException {
         channel.close();
         channel.closeFuture().sync();
+        executor.shutdown();
+        try {
+            executor.awaitTermination(1, TimeUnit.MINUTES);
+            if (!executor.isTerminated()) {
+                LOGGER.log(Level.SEVERE, "Failed to shutdown http server executor");
+            }
+        } catch (Exception e) {
+            LOGGER.log(Level.SEVERE, "Error while shutting down http server executor", e);
+        }
     }
 
     public IServlet getServlet(FullHttpRequest request) {