diff options
author | Jon Bratseth <bratseth@gmail.com> | 2020-10-09 18:19:24 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2020-10-09 18:19:24 +0200 |
commit | 2f4b9ce434dd50479c9f1f3e3139acd4e9290ca5 (patch) | |
tree | 44310f64ecd5243b7c320ab423a5fee612692d33 | |
parent | 471a8febd390210206c85b89505e8d995fc74573 (diff) |
Set RequestType both ways
4 files changed, 12 insertions, 8 deletions
diff --git a/container-core/src/main/java/com/yahoo/container/jdisc/LoggingRequestHandler.java b/container-core/src/main/java/com/yahoo/container/jdisc/LoggingRequestHandler.java index e0fc79b4be9..19460053469 100644 --- a/container-core/src/main/java/com/yahoo/container/jdisc/LoggingRequestHandler.java +++ b/container-core/src/main/java/com/yahoo/container/jdisc/LoggingRequestHandler.java @@ -30,7 +30,7 @@ import java.util.concurrent.Executor; */ public abstract class LoggingRequestHandler extends ThreadedHttpRequestHandler { - private AccessLog accessLog; + private final AccessLog accessLog; public LoggingRequestHandler(Executor executor, AccessLog accessLog) { this(executor, accessLog, null); diff --git a/container-core/src/main/java/com/yahoo/container/jdisc/ThreadedRequestHandler.java b/container-core/src/main/java/com/yahoo/container/jdisc/ThreadedRequestHandler.java index 5864ecf4b91..4c93613603b 100644 --- a/container-core/src/main/java/com/yahoo/container/jdisc/ThreadedRequestHandler.java +++ b/container-core/src/main/java/com/yahoo/container/jdisc/ThreadedRequestHandler.java @@ -159,7 +159,8 @@ public abstract class ThreadedRequestHandler extends AbstractRequestHandler { */ protected void writeErrorResponseOnOverload(Request request, ResponseHandler responseHandler) { Response response = new Response(Response.Status.SERVICE_UNAVAILABLE); - getRequestType().ifPresent(type -> response.setRequestType(type)); + if (getRequestType().isPresent() && response.getRequestType() == null) + response.setRequestType(getRequestType().get()); ResponseDispatch.newInstance(response).dispatch(responseHandler); } @@ -203,7 +204,8 @@ public abstract class ThreadedRequestHandler extends AbstractRequestHandler { @Override public ContentChannel handleResponse(Response response) { if ( tryHasResponded()) throw new IllegalStateException("Response already handled"); - getRequestType().ifPresent(type -> response.setRequestType(type)); + if (getRequestType().isPresent() && response.getRequestType() == null) + response.setRequestType(getRequestType().get()); ContentChannel cc = responseHandler.handleResponse(response); HandlerMetricContextUtil.onHandled(request, metric, getClass()); return cc; diff --git a/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java b/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java index d4ebec6677a..310a4f7b447 100644 --- a/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java +++ b/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java @@ -72,6 +72,8 @@ import java.util.logging.Logger; */ public class SearchHandler extends LoggingRequestHandler { + private static final Logger log = Logger.getLogger(SearchHandler.class.getName()); + private final AtomicInteger requestsInFlight = new AtomicInteger(0); // max number of threads for the executor for this handler @@ -80,15 +82,12 @@ public class SearchHandler extends LoggingRequestHandler { private static final CompoundName DETAILED_TIMING_LOGGING = new CompoundName("trace.timingDetails"); private static final CompoundName FORCE_TIMESTAMPS = new CompoundName("trace.timestamps"); - /** Event name for number of connections to the search subsystem */ private static final String SEARCH_CONNECTIONS = "search_connections"; private static final String JSON_CONTENT_TYPE = "application/json"; - private static Logger log = Logger.getLogger(SearchHandler.class.getName()); - - private Value searchConnections; + private final Value searchConnections; public static final String defaultSearchChainName = "default"; private static final String fallbackSearchChain = "vespa"; @@ -329,6 +328,7 @@ public class SearchHandler extends LoggingRequestHandler { HttpSearchResponse response = new HttpSearchResponse(getHttpResponseStatus(request, result), result, query, renderer, extractTraceNode(query)); + response.setRequestType(Request.RequestType.READ); hostResponseHeaderKey.ifPresent(key -> response.headers().add(key, selfHostname)); if (benchmarking) diff --git a/jdisc_core/src/main/java/com/yahoo/jdisc/Response.java b/jdisc_core/src/main/java/com/yahoo/jdisc/Response.java index c3e386b020c..654c9350547 100644 --- a/jdisc_core/src/main/java/com/yahoo/jdisc/Response.java +++ b/jdisc_core/src/main/java/com/yahoo/jdisc/Response.java @@ -208,7 +208,9 @@ public class Response { } /** Sets the type classification of this request for metric collection purposes */ - public void setRequestType(Request.RequestType requestType) { this.requestType = requestType; } + public void setRequestType(Request.RequestType requestType) { + this.requestType = requestType; + } /** Returns the type classification of this request for metric collection purposes, or null if not set */ public Request.RequestType getRequestType() { return requestType; } |