diff --git a/src/main/java/org/elasticsearch/wares/AbstractServletRestChannel.java b/src/main/java/org/elasticsearch/wares/AbstractServletRestChannel.java index 75a26f5..f421764 100644 --- a/src/main/java/org/elasticsearch/wares/AbstractServletRestChannel.java +++ b/src/main/java/org/elasticsearch/wares/AbstractServletRestChannel.java @@ -33,8 +33,8 @@ */ abstract class AbstractServletRestChannel extends RestChannel { - protected AbstractServletRestChannel(RestRequest request) { - super(request); + protected AbstractServletRestChannel(RestRequest request, boolean detailedErrorsEnabled) { + super(request, detailedErrorsEnabled); } @Override diff --git a/src/main/java/org/elasticsearch/wares/AsyncNodeServlet.java b/src/main/java/org/elasticsearch/wares/AsyncNodeServlet.java index 7a5ccf4..b777983 100644 --- a/src/main/java/org/elasticsearch/wares/AsyncNodeServlet.java +++ b/src/main/java/org/elasticsearch/wares/AsyncNodeServlet.java @@ -48,7 +48,8 @@ public void destroy() { protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { final AsyncContext asyncContext = req.startAsync(); ServletRestRequest request = new ServletRestRequest(req); - AsyncServletRestChannel channel = new AsyncServletRestChannel(request, asyncContext); + AsyncServletRestChannel channel = new AsyncServletRestChannel(request, asyncContext, + detailedErrorsEnabled); restController.dispatchRequest(request, channel); } @@ -56,8 +57,8 @@ static class AsyncServletRestChannel extends AbstractServletRestChannel { final AsyncContext asyncContext; - AsyncServletRestChannel(RestRequest restRequest, AsyncContext asyncContext) { - super(restRequest); + AsyncServletRestChannel(RestRequest restRequest, AsyncContext asyncContext, boolean detailedErrorsEnabled) { + super(restRequest, detailedErrorsEnabled); this.asyncContext = asyncContext; } diff --git a/src/main/java/org/elasticsearch/wares/NodeServlet.java b/src/main/java/org/elasticsearch/wares/NodeServlet.java index 1d3c264..5b51639 100644 --- a/src/main/java/org/elasticsearch/wares/NodeServlet.java +++ b/src/main/java/org/elasticsearch/wares/NodeServlet.java @@ -20,6 +20,7 @@ package org.elasticsearch.wares; import org.elasticsearch.common.settings.ImmutableSettings; +import org.elasticsearch.http.netty.NettyHttpServerTransport; import org.elasticsearch.node.Node; import org.elasticsearch.node.NodeBuilder; import org.elasticsearch.node.internal.InternalNode; @@ -53,6 +54,8 @@ public class NodeServlet extends HttpServlet { protected Node node; protected RestController restController; + + protected boolean detailedErrorsEnabled; @Override public void init() throws ServletException { @@ -111,7 +114,8 @@ public void init() throws ServletException { getServletContext().log("Using pre-initialized elasticsearch Node '" + getServletName() + "'"); this.node = (InternalNode) nodeAttribute; } - restController = ((InternalNode) node).injector().getInstance(RestController.class); + restController = ((InternalNode) node).injector().getInstance(RestController.class); + detailedErrorsEnabled = this.node.settings().getAsBoolean(NettyHttpServerTransport.SETTING_HTTP_DETAILED_ERRORS_ENABLED, true); } @Override @@ -125,7 +129,7 @@ public void destroy() { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { ServletRestRequest request = new ServletRestRequest(req); - ServletRestChannel channel = new ServletRestChannel(request, resp); + ServletRestChannel channel = new ServletRestChannel(request, resp, this.detailedErrorsEnabled); try { restController.dispatchRequest(request, channel); channel.latch.await(); @@ -145,8 +149,8 @@ static class ServletRestChannel extends AbstractServletRestChannel { IOException sendFailure; - ServletRestChannel(RestRequest restRequest, HttpServletResponse resp) { - super(restRequest); + ServletRestChannel(RestRequest restRequest, HttpServletResponse resp, boolean detailedErrorsEnabled) { + super(restRequest, detailedErrorsEnabled); this.resp = resp; this.latch = new CountDownLatch(1); }