aboutsummaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2024-03-14 10:11:20 +0100
committerHarald Musum <musum@yahooinc.com>2024-03-14 10:11:20 +0100
commitb23f3efcf94767c413eb25ed2d39fb934fe3cc9b (patch)
tree058fe67173a10571fb5d28145a95417fbaee401b /config
parent8b6324013e48154a9c9c52d3d39fdcb08f697578 (diff)
Require non-null subscription in a few places, simplify
Diffstat (limited to 'config')
-rw-r--r--config/src/main/java/com/yahoo/config/subscription/impl/JRTConfigRequester.java26
1 files changed, 10 insertions, 16 deletions
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 <T extends ConfigInstance> void request(JRTConfigSubscription<T> 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<ConfigInstance> sub = null;
+ RequestContext context = (RequestContext) req.getContext();
+ JRTConfigSubscription<ConfigInstance> 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;
}