From 15165aa9af6aa541340156837375b360d0a79f8a Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Fri, 8 Jul 2011 13:46:26 +0000 Subject: [PATCH] * NetDB: Fix NPE at startup (ticket #493) --- .../networkdb/kademlia/FloodfillPeerSelector.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillPeerSelector.java b/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillPeerSelector.java index 9c4093899d..3606240d24 100644 --- a/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillPeerSelector.java +++ b/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillPeerSelector.java @@ -22,6 +22,7 @@ import net.i2p.router.RouterContext; import net.i2p.router.peermanager.PeerProfile; import net.i2p.router.util.RandomIterator; import net.i2p.stat.Rate; +import net.i2p.stat.RateStat; import net.i2p.util.Log; /** @@ -201,9 +202,12 @@ class FloodfillPeerSelector extends PeerSelector { } else { PeerProfile prof = _context.profileOrganizer().getProfile(entry); double maxGoodRespTime = MAX_GOOD_RESP_TIME; - Rate tunnelTestTime = _context.statManager().getRate("tunnel.testSuccessTime").getRate(10*60*1000); - if (tunnelTestTime != null && tunnelTestTime.getAverageValue() > 500) - maxGoodRespTime = 2 * tunnelTestTime.getAverageValue(); + RateStat ttst = _context.statManager().getRate("tunnel.testSuccessTime"); + if (ttst != null) { + Rate tunnelTestTime = ttst.getRate(10*60*1000); + if (tunnelTestTime != null && tunnelTestTime.getAverageValue() > 500) + maxGoodRespTime = 2 * tunnelTestTime.getAverageValue(); + } if (prof != null && prof.getDBHistory() != null && prof.getDbResponseTime().getRate(10*60*1000).getAverageValue() < maxGoodRespTime && prof.getDBHistory().getLastStoreFailed() < now - NO_FAIL_STORE_GOOD -- GitLab