Author: toad
Date: 2008-06-17 17:21:25 +0000 (Tue, 17 Jun 2008)
New Revision: 20405

Modified:
   branches/db4o/freenet/src/freenet/node/fcp/ClientRequest.java
   branches/db4o/freenet/src/freenet/node/fcp/FCPServer.java
Log:
Fix readAndRegister().
It runs on the main thread, but that's ok as the database thread hasn't been 
started yet.

Modified: branches/db4o/freenet/src/freenet/node/fcp/ClientRequest.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/ClientRequest.java       
2008-06-17 15:48:49 UTC (rev 20404)
+++ branches/db4o/freenet/src/freenet/node/fcp/ClientRequest.java       
2008-06-17 17:21:25 UTC (rev 20405)
@@ -149,7 +149,7 @@
                return Short.parseShort(string);
        }

-       public static ClientRequest readAndRegister(BufferedReader br, 
FCPServer server) throws IOException {
+       public static ClientRequest readAndRegister(BufferedReader br, 
FCPServer server, ObjectContainer container, ClientContext context) throws 
IOException {
                boolean logMINOR = Logger.shouldLog(Logger.MINOR, 
ClientRequest.class);
                Runtime rt = Runtime.getRuntime();
                if(logMINOR)
@@ -164,9 +164,9 @@
                }
                FCPClient client;
                if(!isGlobal)
-                       client = server.registerClient(clientName, server.core, 
null);
+                       client = server.registerForeverClient(clientName, 
server.core, null, container);
                else
-                       client = server.globalClient;
+                       client = server.globalForeverClient;
                if(logMINOR)
                        Logger.minor(ClientRequest.class, 
rt.maxMemory()-rt.freeMemory()+" in use loading request "+clientName+" 
"+fs.get("Identifier"));
                try {
@@ -175,17 +175,17 @@
                        if(type.equals("GET")) {
                                ClientGet cg = new ClientGet(fs, client, 
server);
                                cg.register(container, lazyResume, true);
-                               if(!lazyResume) cg.start();
+                               if(!lazyResume) cg.start(container, context);
                                return cg;
                        } else if(type.equals("PUT")) {
                                ClientPut cp = new ClientPut(fs, client, 
server);
-                               client.register(cp, lazyResume);
-                               if(!lazyResume) cp.start();
+                               client.register(cp, lazyResume, container);
+                               if(!lazyResume) cp.start(container, context);
                                return cp;
                        } else if(type.equals("PUTDIR")) {
                                ClientPutDir cp = new ClientPutDir(fs, client, 
server);
-                               client.register(cp, lazyResume);
-                               if(!lazyResume) cp.start();
+                               client.register(cp, lazyResume, container);
+                               if(!lazyResume) cp.start(container, context);
                                return cp;
                        } else {
                                Logger.error(ClientRequest.class, "Unrecognized 
type: "+type);

Modified: branches/db4o/freenet/src/freenet/node/fcp/FCPServer.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/FCPServer.java   2008-06-17 
15:48:49 UTC (rev 20404)
+++ branches/db4o/freenet/src/freenet/node/fcp/FCPServer.java   2008-06-17 
17:21:25 UTC (rev 20405)
@@ -119,7 +119,7 @@
                logMINOR = Logger.shouldLog(Logger.MINOR, this);

                if(enabled && enablePersistentDownloads) {
-                       loadPersistentRequests();
+                       loadPersistentRequests(container);
                } else {
                        Logger.error(this, "Not loading persistent requests: 
enabled="+enabled+" enable persistent downloads="+enablePersistentDownloads);
                }
@@ -494,7 +494,7 @@
                }
        }

-       private void loadPersistentRequests() {
+       private void loadPersistentRequests(ObjectContainer container) {
                Logger.normal(this, "Loading persistent requests...");
                FileInputStream fis = null;
                BufferedInputStream bis = null;
@@ -506,7 +506,7 @@
                        bis = new BufferedInputStream(gis);
                        Logger.normal(this, "Loading persistent requests from 
"+file);
                        if (file.length() > 0) {
-                               loadPersistentRequests(bis);
+                               loadPersistentRequests(bis, container);
                                haveLoadedPersistentRequests = true;
                        } else
                                throw new IOException("File empty"); // If it's 
empty, try the temp file.
@@ -520,7 +520,7 @@
                        try {
                                fis = new FileInputStream(file);
                                bis = new BufferedInputStream(fis);
-                               loadPersistentRequests(bis);
+                               loadPersistentRequests(bis, container);
                                haveLoadedPersistentRequests = true;
                        } catch (IOException e1) {
                                Logger.normal(this, "It's corrupted too : Not 
reading any persistent requests from disk: "+e1);
@@ -533,7 +533,7 @@
                }
        }

-       private void loadPersistentRequests(InputStream is) throws IOException {
+       private void loadPersistentRequests(InputStream is, ObjectContainer 
container) throws IOException {
                synchronized(persistenceSync) {
                        InputStreamReader ris = new InputStreamReader(is, 
"UTF-8");
                        BufferedReader br = new BufferedReader(ris);
@@ -549,7 +549,7 @@
                                for(int i = 0; i < count; i++) {
                                        WrapperManager.signalStarting(20 * 60 * 
1000);  // 20 minutes per request; must be >ds lock timeout (10 minutes)
                                        System.out.println("Loading persistent 
request " + (i + 1) + " of " + count + "..."); // humans count from 1..
-                                       ClientRequest.readAndRegister(br, this);
+                                       ClientRequest.readAndRegister(br, this, 
container, core.clientContext);
                                }
                                Logger.normal(this, "Loaded "+count+" 
persistent requests");
                        }


Reply via email to