Author: toad
Date: 2007-09-04 17:31:43 +0000 (Tue, 04 Sep 2007)
New Revision: 14964
Modified:
trunk/freenet/src/freenet/clients/http/QueueToadlet.java
trunk/freenet/src/freenet/node/fcp/ClientRequest.java
Log:
Queue page: Asynchronous restart with feedback
Modified: trunk/freenet/src/freenet/clients/http/QueueToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/QueueToadlet.java 2007-09-04
17:08:37 UTC (rev 14963)
+++ trunk/freenet/src/freenet/clients/http/QueueToadlet.java 2007-09-04
17:31:43 UTC (rev 14964)
@@ -117,14 +117,7 @@
for (int requestIndex = 0, requestCount =
clientRequests.length; requestIndex < requestCount; requestIndex++) {
ClientRequest clientRequest =
clientRequests[requestIndex];
if
(clientRequest.getIdentifier().equals(identifier)) {
- if(!clientRequest.restart()) {
- sendErrorPage(ctx, 200,
-
L10n.getString("QueueToadlet.failedToRestartRequest"),
-
L10n.getString("QueueToadlet.failedToRestart",
-
new String[]{ "id" },
-
new String[] { identifier}
- ));
- }
+ clientRequest.restartAsync();
}
}
fcp.forceStorePersistentRequests();
Modified: trunk/freenet/src/freenet/node/fcp/ClientRequest.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ClientRequest.java 2007-09-04
17:08:37 UTC (rev 14963)
+++ trunk/freenet/src/freenet/node/fcp/ClientRequest.java 2007-09-04
17:31:43 UTC (rev 14964)
@@ -367,4 +367,15 @@
SerializableToFieldSetBucket bucket =
(SerializableToFieldSetBucket) data;
fs.put(name, bucket.toFieldSet());
}
+
+ public void restartAsync() {
+ synchronized(this) {
+ this.started = false;
+ }
+ client.core.getExecutor().execute(new Runnable() {
+ public void run() {
+ restart();
+ }
+ }, "Restarting "+this);
+ }
}