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 9c4093899d2b15ba017629ee2ef50534bc02ac0e..3606240d24ea49f6259ad38f8e0a5418849de7e1 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