Author: j16sdiz
Date: 2008-04-14 00:00:49 +0000 (Mon, 14 Apr 2008)
New Revision: 19280
Modified:
trunk/freenet/src/freenet/node/LocationManager.java
Log:
make sure the item is still around
Modified: trunk/freenet/src/freenet/node/LocationManager.java
===================================================================
--- trunk/freenet/src/freenet/node/LocationManager.java 2008-04-13 23:56:23 UTC
(rev 19279)
+++ trunk/freenet/src/freenet/node/LocationManager.java 2008-04-14 00:00:49 UTC
(rev 19280)
@@ -1221,15 +1221,16 @@
public void lostOrRestartedNode(PeerNode pn) {
Vector v = new Vector();
synchronized(recentlyForwardedIDs) {
- Set entrySet = new HashSet(recentlyForwardedIDs.entrySet()); //
clone
+ Set keySet = new HashSet(recentlyForwardedIDs.keySet()); //
clone
- Iterator it = entrySet.iterator();
+ Iterator it = keySet.iterator();
while (it.hasNext()) {
- Map.Entry e = (Map.Entry) it.next();
- Long l = (Long) e.getKey();
+ Long l = (Long) it.next();
- RecentlyForwardedItem item =
(RecentlyForwardedItem) e.getValue();
+ RecentlyForwardedItem item =
(RecentlyForwardedItem) recentlyForwardedIDs.get(l);
+ // make sure the item still exist
if(item == null) {
+ // FIXME removeRecentlyForwardedItem may have removed
this?
Logger.error(this, "Key is "+l+" but no value on
recentlyForwardedIDs - shouldn't be possible");
continue;
}