Author: toad
Date: 2008-02-02 23:08:40 +0000 (Sat, 02 Feb 2008)
New Revision: 17485

Modified:
   trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java
   trunk/freenet/src/freenet/client/async/OfferedKeysList.java
Log:
Remove also in removePendingKey().

Modified: trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java
===================================================================
--- trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java  
2008-02-02 23:05:43 UTC (rev 17484)
+++ trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java  
2008-02-02 23:08:40 UTC (rev 17485)
@@ -474,6 +474,7 @@
        }

        public void removePendingKey(SendableGet getter, boolean complain, Key 
key) {
+               boolean dropped = false;
                synchronized(pendingKeys) {
                        Object o = pendingKeys.get(key);
                        if(o == null) {
@@ -510,6 +511,7 @@
                                }
                                if(newGets.length == 0) {
                                        pendingKeys.remove(key);
+                                       dropped = true;
                                } else if(newGets.length == 1) {
                                        pendingKeys.put(key, newGets[0]);
                                } else {
@@ -517,6 +519,10 @@
                                }
                        }
                }
+               if(dropped && offeredKeys != null) {
+                       for(int i=0;i<offeredKeys.length;i++)
+                               offeredKeys[i].remove(key);
+               }
        }

        /**
@@ -574,7 +580,7 @@
        public void tripPendingKey(final KeyBlock block) {
                if(offeredKeys != null) {
                        for(int i=0;i<offeredKeys.length;i++) {
-                               offeredKeys[i].onFoundKey(block.getKey());
+                               offeredKeys[i].remove(block.getKey());
                        }
                }
                final Key key = block.getKey();

Modified: trunk/freenet/src/freenet/client/async/OfferedKeysList.java
===================================================================
--- trunk/freenet/src/freenet/client/async/OfferedKeysList.java 2008-02-02 
23:05:43 UTC (rev 17484)
+++ trunk/freenet/src/freenet/client/async/OfferedKeysList.java 2008-02-02 
23:08:40 UTC (rev 17485)
@@ -51,8 +51,8 @@
                logMINOR = Logger.shouldLog(Logger.MINOR, this);
        }

-       /** Called when a key is found */
-       public synchronized void onFoundKey(Key key) {
+       /** Called when a key is found, when it no longer belogns to this list 
etc. */
+       public synchronized void remove(Key key) {
                logMINOR = Logger.shouldLog(Logger.MINOR, this);
                ClientKey ck = (ClientKey) clientKeysByKey.remove(key);
                if(ck == null) return;


Reply via email to