Author: toad
Date: 2007-02-17 01:24:30 +0000 (Sat, 17 Feb 2007)
New Revision: 11828

Modified:
   trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java
Log:
Don't remove from hash unless we need to

Modified: trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java
===================================================================
--- trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java  
2007-02-17 01:15:15 UTC (rev 11827)
+++ trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java  
2007-02-17 01:24:30 UTC (rev 11828)
@@ -312,10 +312,14 @@
                                if(logMINOR) Logger.minor(this, "removeFirst() 
returning "+req+" ("+rga.getNumber()+", prio "+
                                                req.getPriorityClass()+", 
retries "+req.getRetryCount()+", client "+req.getClient()+", client-req 
"+req.getClientRequest()+ ')');
                                ClientRequester cr = req.getClientRequest();
-                               HashSet v = (HashSet) 
allRequestsByClientRequest.get(cr);
-                               v.remove(req);
-                               if(v.isEmpty())
-                                       allRequestsByClientRequest.remove(cr);
+                               if(req.canRemove()) {
+                                       HashSet v = (HashSet) 
allRequestsByClientRequest.get(cr);
+                                       v.remove(req);
+                                       if(v.isEmpty())
+                                               
allRequestsByClientRequest.remove(cr);
+                                       if(logMINOR) Logger.minor(this, 
"Removed from "+v);
+                               }
+                               if(logMINOR) Logger.minor(this, "removeFirst() 
returning "+req);
                                return req;
                        }
                }


Reply via email to