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


Reply via email to