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);