Author: toad
Date: 2008-06-17 18:03:30 +0000 (Tue, 17 Jun 2008)
New Revision: 20409
Modified:
branches/db4o/freenet/src/freenet/clients/http/QueueToadlet.java
Log:
Finish fixing QueueToadlet.
Occasionally some now-deleted completion alerts may show temporarily on the web
interface.
Modified: branches/db4o/freenet/src/freenet/clients/http/QueueToadlet.java
===================================================================
--- branches/db4o/freenet/src/freenet/clients/http/QueueToadlet.java
2008-06-17 18:01:05 UTC (rev 20408)
+++ branches/db4o/freenet/src/freenet/clients/http/QueueToadlet.java
2008-06-17 18:03:30 UTC (rev 20409)
@@ -1139,20 +1139,26 @@
if(!readCompletedIdentifiers(completedIdentifiersList)) {
readCompletedIdentifiers(completedIdentifiersListNew);
}
- String[] identifiers;
- synchronized(completedRequestIdentifiers) {
- identifiers = (String[])
completedRequestIdentifiers.toArray(new
String[completedRequestIdentifiers.size()]);
- }
- for(int i=0;i<identifiers.length;i++) {
- ClientRequest req =
fcp.getGlobalRequest(identifiers[i]);
- if(req == null) {
+ core.clientContext.jobRunner.queue(new DBJob() {
+
+ public void run(ObjectContainer container,
ClientContext context) {
+ String[] identifiers;
synchronized(completedRequestIdentifiers) {
-
completedRequestIdentifiers.remove(identifiers[i]);
+ identifiers = (String[])
completedRequestIdentifiers.toArray(new
String[completedRequestIdentifiers.size()]);
}
- continue;
+ for(int i=0;i<identifiers.length;i++) {
+ ClientRequest req =
fcp.getGlobalRequest(identifiers[i], container);
+ if(req == null) {
+
synchronized(completedRequestIdentifiers) {
+
completedRequestIdentifiers.remove(identifiers[i]);
+ }
+ continue;
+ }
+ registerAlert(req);
+ }
}
- registerAlert(req);
- }
+
+ }, NativeThread.HIGH_PRIORITY, false);
}
private boolean readCompletedIdentifiers(File file) {