[freenet-cvs] r20916 - branches/db4o/freenet/src/freenet/client/async
toad at freenetproject.org
toad at freenetproject.org
Tue Jul 1 16:31:28 UTC 2008
Author: toad
Date: 2008-07-01 16:31:28 +0000 (Tue, 01 Jul 2008)
New Revision: 20916
Modified:
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerBase.java
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerCore.java
Log:
Recognise when a selected request is not in pendingKeys for the key and complain.
Modified: branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerBase.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerBase.java 2008-07-01 16:03:12 UTC (rev 20915)
+++ branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerBase.java 2008-07-01 16:31:28 UTC (rev 20916)
@@ -224,6 +224,23 @@
}
}
+ protected boolean inPendingKeys(SendableRequest req, Key key) {
+ Object o;
+ synchronized(pendingKeys) {
+ o = pendingKeys.get(key);
+ }
+ if(o == null) {
+ return false;
+ } else if(o instanceof SendableGet) {
+ return o == req;
+ } else {
+ SendableGet[] gets = (SendableGet[]) o;
+ for(int i=0;i<gets.length;i++)
+ if(gets[i] == req) return true;
+ }
+ return false;
+ }
+
public long countQueuedRequests() {
if(pendingKeys != null)
return pendingKeys.size();
Modified: branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerCore.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerCore.java 2008-07-01 16:03:12 UTC (rev 20915)
+++ branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerCore.java 2008-07-01 16:31:28 UTC (rev 20916)
@@ -267,6 +267,9 @@
container.set(ret);
if(logMINOR)
Logger.minor(this, "Storing "+ret);
+ if((req instanceof SendableGet) && inPendingKeys(req, key)) {
+ Logger.error(this, "Selected key not in pendingKeys: key "+key+" for "+req);
+ }
} else {
ret = new ChosenRequest(req, token, key, ckey, req.getPriorityClass(container));
}
More information about the cvs
mailing list