diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/access/AccessFilter.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/access/AccessFilter.java index 3c6c6c27e2..6b27fe8ae9 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/access/AccessFilter.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/access/AccessFilter.java @@ -114,11 +114,18 @@ class AccessFilter implements StatefulConnectionFilter { } private void reload() throws IOException { + Map tmp = new HashMap(); + for (FilterDefinitionElement element : definition.getElements()) { + element.update(tmp); + } + synchronized(knownDests) { - knownDests.clear(); - for (FilterDefinitionElement element : definition.getElements()) { - element.update(knownDests); - } + knownDests.keySet().retainAll(tmp.keySet()); + for (Hash newHash : tmp.keySet()) { + if (knownDests.containsKey(newHash)) + continue; + knownDests.put(newHash, tmp.get(newHash)); + } } }