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