From 75d681a93cdcd5c6bf112c89ca1f132322c62d90 Mon Sep 17 00:00:00 2001 From: zzz Date: Mon, 23 Apr 2018 15:48:44 +0000 Subject: [PATCH] Clock: Fix early NPE via DoH --- router/java/src/net/i2p/router/RouterClock.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/router/java/src/net/i2p/router/RouterClock.java b/router/java/src/net/i2p/router/RouterClock.java index c4b4af066..a0932c7d0 100644 --- a/router/java/src/net/i2p/router/RouterClock.java +++ b/router/java/src/net/i2p/router/RouterClock.java @@ -150,7 +150,10 @@ public class RouterClock extends Clock { _alreadyChanged) { // Try calculating peer clock skew - long currentPeerClockSkew = ((RouterContext)_context).commSystem().getFramedAveragePeerClockSkew(33); + // This may get called very early at startup, before RouterContext.initAll() is completed, + // so the comm system may be null. Avoid NPE. + CommSystemFacade csf = ((RouterContext)_context).commSystem(); + long currentPeerClockSkew = (csf != null) ? csf.getFramedAveragePeerClockSkew(33) : 0; // Predict the effect of applying the proposed clock offset long predictedPeerClockSkew = currentPeerClockSkew + delta;