Author: toad
Date: 2008-06-18 17:54:50 +0000 (Wed, 18 Jun 2008)
New Revision: 20439
Modified:
branches/db4o/freenet/src/freenet/client/async/BinaryBlobInserter.java
branches/db4o/freenet/src/freenet/client/async/ClientContext.java
branches/db4o/freenet/src/freenet/client/async/ClientRequester.java
branches/db4o/freenet/src/freenet/client/async/SingleBlockInserter.java
branches/db4o/freenet/src/freenet/node/NodeClientCore.java
branches/db4o/freenet/src/freenet/node/SendableGet.java
Log:
Resolve init order problem
Modified: branches/db4o/freenet/src/freenet/client/async/BinaryBlobInserter.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/BinaryBlobInserter.java
2008-06-18 17:48:28 UTC (rev 20438)
+++ branches/db4o/freenet/src/freenet/client/async/BinaryBlobInserter.java
2008-06-18 17:54:50 UTC (rev 20439)
@@ -71,9 +71,9 @@
private ClientRequestScheduler getScheduler(KeyBlock block,
ClientContext context) {
if(block instanceof CHKBlock)
- return context.chkFetchScheduler;
+ return context.getChkFetchScheduler();
else if(block instanceof SSKBlock)
- return context.sskFetchScheduler;
+ return context.getSskFetchScheduler();
else throw new IllegalArgumentException("Unknown block type
"+block.getClass()+" : "+block);
}
Modified: branches/db4o/freenet/src/freenet/client/async/ClientContext.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/ClientContext.java
2008-06-18 17:48:28 UTC (rev 20438)
+++ branches/db4o/freenet/src/freenet/client/async/ClientContext.java
2008-06-18 17:54:50 UTC (rev 20439)
@@ -11,6 +11,7 @@
import freenet.client.InsertException;
import freenet.crypt.RandomSource;
import freenet.node.NodeClientCore;
+import freenet.node.RequestStarterGroup;
import freenet.support.Executor;
import freenet.support.api.BucketFactory;
import freenet.support.io.NativeThread;
@@ -23,10 +24,10 @@
public class ClientContext {
public final FECQueue fecQueue;
- public final ClientRequestScheduler sskFetchScheduler;
- public final ClientRequestScheduler chkFetchScheduler;
- public final ClientRequestScheduler sskInsertScheduler;
- public final ClientRequestScheduler chkInsertScheduler;
+ private ClientRequestScheduler sskFetchScheduler;
+ private ClientRequestScheduler chkFetchScheduler;
+ private ClientRequestScheduler sskInsertScheduler;
+ private ClientRequestScheduler chkInsertScheduler;
public final DBJobRunner jobRunner;
public final Executor mainExecutor;
public final long nodeDBHandle;
@@ -53,7 +54,30 @@
this.healingQueue = core.getHealingQueue();
this.uskManager = core.uskManager;
}
+
+ public void init(RequestStarterGroup starters) {
+ this.sskFetchScheduler = starters.sskFetchScheduler;
+ this.chkFetchScheduler = starters.chkFetchScheduler;
+ this.sskInsertScheduler = starters.sskPutScheduler;
+ this.chkInsertScheduler = starters.chkPutScheduler;
+ }
+ public ClientRequestScheduler getSskFetchScheduler() {
+ return sskFetchScheduler;
+ }
+
+ public ClientRequestScheduler getChkFetchScheduler() {
+ return chkFetchScheduler;
+ }
+
+ public ClientRequestScheduler getSskInsertScheduler() {
+ return sskInsertScheduler;
+ }
+
+ public ClientRequestScheduler getChkInsertScheduler() {
+ return chkInsertScheduler;
+ }
+
public void start(final ClientPutter inserter, final boolean
earlyEncode) throws InsertException {
if(inserter.persistent()) {
jobRunner.queue(new DBJob() {
Modified: branches/db4o/freenet/src/freenet/client/async/ClientRequester.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/ClientRequester.java
2008-06-18 17:48:28 UTC (rev 20438)
+++ branches/db4o/freenet/src/freenet/client/async/ClientRequester.java
2008-06-18 17:54:50 UTC (rev 20439)
@@ -125,10 +125,10 @@
public void setPriorityClass(short newPriorityClass, ClientContext ctx,
ObjectContainer container) {
this.priorityClass = newPriorityClass;
- ctx.chkFetchScheduler.reregisterAll(this, container);
- ctx.chkInsertScheduler.reregisterAll(this, container);
- ctx.sskFetchScheduler.reregisterAll(this, container);
- ctx.sskInsertScheduler.reregisterAll(this, container);
+ ctx.getChkFetchScheduler().reregisterAll(this, container);
+ ctx.getChkInsertScheduler().reregisterAll(this, container);
+ ctx.getSskFetchScheduler().reregisterAll(this, container);
+ ctx.getSskInsertScheduler().reregisterAll(this, container);
}
public boolean persistent() {
Modified:
branches/db4o/freenet/src/freenet/client/async/SingleBlockInserter.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SingleBlockInserter.java
2008-06-18 17:48:28 UTC (rev 20438)
+++ branches/db4o/freenet/src/freenet/client/async/SingleBlockInserter.java
2008-06-18 17:54:50 UTC (rev 20439)
@@ -238,9 +238,9 @@
private ClientRequestScheduler getScheduler(ClientContext context) {
String uriType = uri.getKeyType();
if(uriType.equals("CHK"))
- return context.chkInsertScheduler;
+ return context.getChkInsertScheduler();
else if(uriType.equals("SSK") || uriType.equals("KSK"))
- return context.sskInsertScheduler;
+ return context.getSskInsertScheduler();
else throw new IllegalArgumentException();
}
Modified: branches/db4o/freenet/src/freenet/node/NodeClientCore.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/NodeClientCore.java 2008-06-18
17:48:28 UTC (rev 20438)
+++ branches/db4o/freenet/src/freenet/node/NodeClientCore.java 2008-06-18
17:54:50 UTC (rev 20439)
@@ -169,6 +169,7 @@
if(logMINOR) Logger.minor(this, "Serializing
RequestStarterGroup from:\n"+throttleFS);
clientContext = new ClientContext(this);
requestStarters = new RequestStarterGroup(node, this,
portNumber, random, config, throttleFS, clientContext);
+ clientContext.init(requestStarters);
// Temp files
Modified: branches/db4o/freenet/src/freenet/node/SendableGet.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/SendableGet.java 2008-06-18
17:48:28 UTC (rev 20438)
+++ branches/db4o/freenet/src/freenet/node/SendableGet.java 2008-06-18
17:54:50 UTC (rev 20439)
@@ -104,9 +104,9 @@
public ClientRequestScheduler getScheduler(ClientContext context) {
if(isSSK())
- return context.sskFetchScheduler;
+ return context.getSskFetchScheduler();
else
- return context.chkFetchScheduler;
+ return context.getChkFetchScheduler();
}
/**