From b23f3efcf94767c413eb25ed2d39fb934fe3cc9b Mon Sep 17 00:00:00 2001 From: Harald Musum Date: Thu, 14 Mar 2024 10:11:20 +0100 Subject: Require non-null subscription in a few places, simplify --- .../subscription/impl/JRTConfigRequester.java | 26 +++++++++------------- 1 file changed, 10 insertions(+), 16 deletions(-) (limited to 'config') diff --git a/config/src/main/java/com/yahoo/config/subscription/impl/JRTConfigRequester.java b/config/src/main/java/com/yahoo/config/subscription/impl/JRTConfigRequester.java index d5d21119d3b..ec1e040fdca 100644 --- a/config/src/main/java/com/yahoo/config/subscription/impl/JRTConfigRequester.java +++ b/config/src/main/java/com/yahoo/config/subscription/impl/JRTConfigRequester.java @@ -14,10 +14,10 @@ import com.yahoo.vespa.config.TimingValues; import com.yahoo.vespa.config.protocol.JRTClientConfigRequest; import com.yahoo.vespa.config.protocol.JRTConfigRequestFactory; import com.yahoo.vespa.config.protocol.Trace; -import com.yahoo.yolean.Exceptions; import java.time.Duration; import java.time.Instant; +import java.util.Objects; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.logging.Level; @@ -92,6 +92,7 @@ public class JRTConfigRequester implements RequestWaiter { * @param sub a subscription */ public void request(JRTConfigSubscription sub) { + Objects.requireNonNull(sub, "sub cannot be null"); JRTClientConfigRequest req = JRTConfigRequestFactory.createFromSub(sub); doRequest(sub, req); } @@ -113,20 +114,13 @@ public class JRTConfigRequester implements RequestWaiter { @SuppressWarnings("unchecked") @Override public void handleRequestDone(Request req) { - JRTConfigSubscription sub = null; + RequestContext context = (RequestContext) req.getContext(); + JRTConfigSubscription sub = context.sub; try { - RequestContext context = (RequestContext) req.getContext(); - sub = context.sub; doHandle(sub, context.jrtReq, context.connection); } catch (RuntimeException e) { - if (sub != null) { - // Sets this field, it will get thrown from the user thread - sub.setException(e); - } else { - // Very unlikely - log.log(SEVERE, "Failed to get subscription object from JRT config callback: " + - Exceptions.toMessageString(e)); - } + // Sets this field, it will get thrown from the user thread + sub.setException(e); } } @@ -137,7 +131,7 @@ public class JRTConfigRequester implements RequestWaiter { log.log(FINE, () -> "Response " + (validResponse ? "valid" : "invalid") + ". Req: " + jrtReq + "\nSpec: " + connection); Trace trace = jrtReq.getResponseTrace(); trace.trace(TRACELEVEL, "JRTConfigRequester.doHandle()"); - log.log(FINEST, () -> trace.toString()); + log.log(FINEST, trace::toString); if (validResponse) handleOKRequest(jrtReq, sub); else @@ -220,7 +214,7 @@ public class JRTConfigRequester implements RequestWaiter { private void scheduleNextRequest(JRTClientConfigRequest jrtReq, JRTConfigSubscription sub, long delay, long timeout) { long delayBeforeSendingRequest = (delay < 0) ? 0 : delay; JRTClientConfigRequest jrtReqNew = jrtReq.nextRequest(timeout); - log.log(FINEST, () -> timingValues.toString()); + log.log(FINEST, timingValues::toString); log.log(FINE, () -> "Scheduling new request " + delayBeforeSendingRequest + " millis from now for " + jrtReqNew.getConfigKey()); scheduler.schedule(new GetConfigTask(jrtReqNew, sub), delayBeforeSendingRequest, TimeUnit.MILLISECONDS); } @@ -234,7 +228,7 @@ public class JRTConfigRequester implements RequestWaiter { GetConfigTask(JRTClientConfigRequest jrtReq, JRTConfigSubscription sub) { this.jrtReq = jrtReq; - this.sub = sub; + this.sub = Objects.requireNonNull(sub, "sub cannot be null"); } public void run() { @@ -256,7 +250,7 @@ public class JRTConfigRequester implements RequestWaiter { final Connection connection; private RequestContext(JRTConfigSubscription sub, JRTClientConfigRequest jrtReq, Connection connection) { - this.sub = sub; + this.sub = Objects.requireNonNull(sub, "sub cannot be null"); this.jrtReq = jrtReq; this.connection = connection; } -- cgit v1.2.3