Author: toad
Date: 2008-06-16 16:16:51 +0000 (Mon, 16 Jun 2008)
New Revision: 20361
Modified:
branches/db4o/freenet/src/freenet/node/fcp/FCPServer.java
branches/db4o/freenet/src/freenet/node/fcp/ListPersistentRequestsMessage.java
Log:
ListPersistentRequestsMessage: get PERSIST_FOREVER on the database thread
Modified: branches/db4o/freenet/src/freenet/node/fcp/FCPServer.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/FCPServer.java 2008-06-16
12:45:45 UTC (rev 20360)
+++ branches/db4o/freenet/src/freenet/node/fcp/FCPServer.java 2008-06-16
16:16:51 UTC (rev 20361)
@@ -692,10 +692,10 @@
return globalForeverClient;
}
- public ClientRequest getGlobalRequest(String identifier) {
- ClientRequest req = globalRebootClient.getRequest(identifier);
+ public ClientRequest getGlobalRequest(String identifier,
ObjectContainer container) {
+ ClientRequest req = globalRebootClient.getRequest(identifier,
null);
if(req == null)
- req = globalForeverClient.getRequest(identifier);
+ req = globalForeverClient.getRequest(identifier,
container);
return req;
}
Modified:
branches/db4o/freenet/src/freenet/node/fcp/ListPersistentRequestsMessage.java
===================================================================
---
branches/db4o/freenet/src/freenet/node/fcp/ListPersistentRequestsMessage.java
2008-06-16 12:45:45 UTC (rev 20360)
+++
branches/db4o/freenet/src/freenet/node/fcp/ListPersistentRequestsMessage.java
2008-06-16 16:16:51 UTC (rev 20361)
@@ -3,8 +3,13 @@
* http://www.gnu.org/ for further details of the GPL. */
package freenet.node.fcp;
+import com.db4o.ObjectContainer;
+
+import freenet.client.async.ClientContext;
+import freenet.client.async.DBJob;
import freenet.node.Node;
import freenet.support.SimpleFieldSet;
+import freenet.support.io.NativeThread;
public class ListPersistentRequestsMessage extends FCPMessage {
@@ -22,17 +27,27 @@
return NAME;
}
- public void run(FCPConnectionHandler handler, Node node)
+ public void run(final FCPConnectionHandler handler, Node node)
throws MessageInvalidException {
-
handler.getRebootClient().queuePendingMessagesOnConnectionRestart(handler.outputHandler);
-
handler.getForeverClient().queuePendingMessagesOnConnectionRestart(handler.outputHandler);
-
handler.getRebootClient().queuePendingMessagesFromRunningRequests(handler.outputHandler);
-
handler.getForeverClient().queuePendingMessagesFromRunningRequests(handler.outputHandler);
+ node.clientCore.clientContext.jobRunner.queue(new DBJob() {
+
+ public void run(ObjectContainer container,
ClientContext context) {
+
handler.getForeverClient().queuePendingMessagesOnConnectionRestart(handler.outputHandler,
container);
+
handler.getForeverClient().queuePendingMessagesFromRunningRequests(handler.outputHandler,
container);
+ if(handler.getRebootClient().watchGlobal) {
+
handler.server.globalForeverClient.queuePendingMessagesOnConnectionRestart(handler.outputHandler,
container);
+
handler.server.globalForeverClient.queuePendingMessagesFromRunningRequests(handler.outputHandler,
container);
+ }
+ }
+
+ }, NativeThread.NORM_PRIORITY, false);
+
handler.getRebootClient().queuePendingMessagesOnConnectionRestart(handler.outputHandler,
null);
+
handler.getRebootClient().queuePendingMessagesFromRunningRequests(handler.outputHandler,
null);
if(handler.getRebootClient().watchGlobal) {
-
handler.server.globalRebootClient.queuePendingMessagesOnConnectionRestart(handler.outputHandler);
-
handler.server.globalForeverClient.queuePendingMessagesOnConnectionRestart(handler.outputHandler);
-
handler.server.globalRebootClient.queuePendingMessagesFromRunningRequests(handler.outputHandler);
-
handler.server.globalForeverClient.queuePendingMessagesFromRunningRequests(handler.outputHandler);
+
handler.server.globalRebootClient.queuePendingMessagesOnConnectionRestart(handler.outputHandler,
null);
+
handler.server.globalRebootClient.queuePendingMessagesFromRunningRequests(handler.outputHandler,
null);
+
handler.server.globalForeverClient.queuePendingMessagesOnConnectionRestart(handler.outputHandler,
null);
+
handler.server.globalForeverClient.queuePendingMessagesFromRunningRequests(handler.outputHandler,
null);
}
handler.outputHandler.queue(new
EndListPersistentRequestsMessage());
}