From e5540d051f654841f36bfc874eef14378a4ca33d Mon Sep 17 00:00:00 2001 From: zab2 Date: Tue, 16 Apr 2019 00:37:29 +0000 Subject: [PATCH] proper fix for memory bug --- .../net/i2p/i2ptunnel/access/AccessFilter.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) 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)); + } } }