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


Reply via email to