diff options
author | Jon Bratseth <bratseth@gmail.com> | 2020-10-07 11:03:29 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2020-10-07 11:03:29 +0200 |
commit | 35a58a4c72c325eb7d2a2f9e217c9ffb042ca6d4 (patch) | |
tree | 0d3977ae27bb608c738145cbd90c76b62fd004dc /container-core | |
parent | c9335e0efde84cafdbc878fc4c4504e3ce12b93c (diff) |
Use Optional
Diffstat (limited to 'container-core')
-rw-r--r-- | container-core/abi-spec.json | 1 | ||||
-rw-r--r-- | container-core/src/main/java/com/yahoo/container/jdisc/ThreadedRequestHandler.java | 12 |
2 files changed, 7 insertions, 6 deletions
diff --git a/container-core/abi-spec.json b/container-core/abi-spec.json index 45d6a9bcc03..458320c87df 100644 --- a/container-core/abi-spec.json +++ b/container-core/abi-spec.json @@ -630,6 +630,7 @@ "protected void <init>(java.util.concurrent.Executor, com.yahoo.jdisc.Metric)", "protected void <init>(java.util.concurrent.Executor, com.yahoo.jdisc.Metric, boolean)", "public final com.yahoo.jdisc.handler.ContentChannel handleRequest(com.yahoo.jdisc.Request, com.yahoo.jdisc.handler.ResponseHandler)", + "protected java.util.Optional getRequestType()", "public java.time.Duration getTimeout()", "public java.util.concurrent.Executor executor()", "protected abstract void handleRequest(com.yahoo.jdisc.Request, com.yahoo.jdisc.handler.BufferedContentChannel, com.yahoo.jdisc.handler.ResponseHandler)", 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 691675dfec9..5864ecf4b91 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 @@ -18,6 +18,7 @@ import com.yahoo.container.core.HandlerMetricContextUtil; import java.time.Duration; import java.util.Map; import java.util.Objects; +import java.util.Optional; import java.util.concurrent.Executor; import java.util.concurrent.RejectedExecutionException; import java.util.concurrent.TimeUnit; @@ -112,11 +113,11 @@ public abstract class ThreadedRequestHandler extends AbstractRequestHandler { * be overridden by setting a request type on individual responses in handleRequest * whenever it is invoked (i.e not for requests that are rejected early e.g due to overload).</p> * - * <p>This default implementation returns null.</p> + * <p>This default implementation returns empty.</p> * - * @return the request type to set, or null to not override the default classification based on request method + * @return the request type to set, or empty to not override the default classification based on request method */ - protected Request.RequestType getRequestType() { return null; } + protected Optional<Request.RequestType> getRequestType() { return Optional.empty(); } public Duration getTimeout() { return TIMEOUT; @@ -158,7 +159,7 @@ public abstract class ThreadedRequestHandler extends AbstractRequestHandler { */ protected void writeErrorResponseOnOverload(Request request, ResponseHandler responseHandler) { Response response = new Response(Response.Status.SERVICE_UNAVAILABLE); - response.setRequestType(getRequestType()); + getRequestType().ifPresent(type -> response.setRequestType(type)); ResponseDispatch.newInstance(response).dispatch(responseHandler); } @@ -202,8 +203,7 @@ public abstract class ThreadedRequestHandler extends AbstractRequestHandler { @Override public ContentChannel handleResponse(Response response) { if ( tryHasResponded()) throw new IllegalStateException("Response already handled"); - if (response.getRequestType() == null) - response.setRequestType(getRequestType()); + getRequestType().ifPresent(type -> response.setRequestType(type)); ContentChannel cc = responseHandler.handleResponse(response); HandlerMetricContextUtil.onHandled(request, metric, getClass()); return cc; |