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

        /**


Reply via email to