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