diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java index 67d75e179e..d2bcd69e6e 100644 --- a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java +++ b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java @@ -131,6 +131,8 @@ public class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacade { but less than 20m (when we start accepting tunnels and could be a IBGW) */ protected final static long PUBLISH_JOB_DELAY = 5*60*1000l; + private static final int MAX_EXPLORE_QUEUE = 128; + public KademliaNetworkDatabaseFacade(RouterContext context) { _context = context; _log = _context.logManager().getLog(getClass()); @@ -184,7 +186,9 @@ public class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacade { public void queueForExploration(Set keys) { if (!_initialized) return; - _exploreKeys.addAll(keys); + for (Iterator iter = keys.iterator(); iter.hasNext() && _exploreKeys.size() < MAX_EXPLORE_QUEUE; ) { + _exploreKeys.add(iter.next()); + } _context.statManager().addRateData("netDb.exploreKeySet", _exploreKeys.size(), 0); }