Author: toad
Date: 2008-02-08 18:49:01 +0000 (Fri, 08 Feb 2008)
New Revision: 17710

Modified:
   trunk/freenet/src/freenet/node/FailureTable.java
Log:
Synchronization fix

Modified: trunk/freenet/src/freenet/node/FailureTable.java
===================================================================
--- trunk/freenet/src/freenet/node/FailureTable.java    2008-02-08 18:45:34 UTC 
(rev 17709)
+++ trunk/freenet/src/freenet/node/FailureTable.java    2008-02-08 18:49:01 UTC 
(rev 17710)
@@ -119,7 +119,7 @@
                        entry.addRequestor(requestor, now);
        }

-       private void trimEntries(long now) {
+       private synchronized void trimEntries(long now) {
                while(entriesByKey.size() > MAX_ENTRIES) {
                        entriesByKey.popKey();
                }
@@ -289,7 +289,11 @@
                boolean heAsked = entry.askedByPeer(peer, now);
                if(!(weAsked || ((key instanceof NodeCHK) && heAsked))) {
                        if(logMINOR) Logger.minor(this, "Not propagating key: 
weAsked="+weAsked+" heAsked="+heAsked);
-                       if(entry.isEmpty(now)) entriesByKey.removeKey(key);
+                       if(entry.isEmpty(now)) {
+                               synchronized(this) {
+                                       entriesByKey.removeKey(key);
+                               }
+                       }
                        return;
                }
                if(entry.isEmpty(now)) entriesByKey.removeKey(key);


Reply via email to