Author: toad
Date: 2008-09-25 17:17:47 +0000 (Thu, 25 Sep 2008)
New Revision: 22836

Modified:
   branches/db4o/freenet/src/freenet/client/async/ClientContext.java
   branches/db4o/freenet/src/freenet/node/NodeClientCore.java
Log:
Permanently fix the ClientContext init NPEs


Modified: branches/db4o/freenet/src/freenet/client/async/ClientContext.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/ClientContext.java   
2008-09-25 17:06:18 UTC (rev 22835)
+++ branches/db4o/freenet/src/freenet/client/async/ClientContext.java   
2008-09-25 17:17:47 UTC (rev 22836)
@@ -49,25 +49,30 @@
        public transient final FilenameGenerator fg;
        public transient final FilenameGenerator persistentFG;

-       public ClientContext(NodeClientCore core) {
+       public ClientContext(NodeClientCore core, FECQueue fecQueue, Executor 
mainExecutor,
+                       BackgroundBlockEncoder blockEncoder, ArchiveManager 
archiveManager,
+                       BucketFactory ptbf, BucketFactory tbf, HealingQueue hq,
+                       USKManager uskManager, RandomSource strongRandom, 
+                       Random fastWeakRandom, Ticker ticker, 
+                       FilenameGenerator fg, FilenameGenerator persistentFG) {
                this.bootID = core.node.bootID;
-               this.fecQueue = core.fecQueue;
+               this.fecQueue = fecQueue;
                jobRunner = core;
-               this.mainExecutor = core.getExecutor();
+               this.mainExecutor = mainExecutor;
                this.nodeDBHandle = core.node.nodeDBHandle;
-               this.backgroundBlockEncoder = core.backgroundBlockEncoder;
-               this.random = core.random;
-               archiveManager = core.archiveManager;
-               this.persistentBucketFactory = core.persistentTempBucketFactory;
+               this.backgroundBlockEncoder = blockEncoder;
+               this.random = strongRandom;
+               this.archiveManager = archiveManager;
+               this.persistentBucketFactory = ptbf;
                if(persistentBucketFactory == null) throw new 
NullPointerException();
-               this.tempBucketFactory = core.tempBucketFactory;
+               this.tempBucketFactory = tbf;
                if(tempBucketFactory == null) throw new NullPointerException();
-               this.healingQueue = core.getHealingQueue();
-               this.uskManager = core.uskManager;
-               fastWeakRandom = core.node.fastWeakRandom;
-               this.ticker = core.getTicker();
-               fg = core.tempFilenameGenerator;
-               persistentFG = core.persistentFilenameGenerator;
+               this.healingQueue = hq;
+               this.uskManager = uskManager;
+               this.fastWeakRandom = fastWeakRandom;
+               this.ticker = ticker;
+               this.fg = fg;
+               this.persistentFG = persistentFG;
        }

        public void init(RequestStarterGroup starters) {

Modified: branches/db4o/freenet/src/freenet/node/NodeClientCore.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/NodeClientCore.java  2008-09-25 
17:06:18 UTC (rev 22835)
+++ branches/db4o/freenet/src/freenet/node/NodeClientCore.java  2008-09-25 
17:17:47 UTC (rev 22836)
@@ -296,18 +296,18 @@

                archiveManager = new ArchiveManager(MAX_ARCHIVE_HANDLERS, 
MAX_CACHED_ARCHIVE_DATA, MAX_ARCHIVED_FILE_SIZE, MAX_CACHED_ELEMENTS, 
tempBucketFactory);

-               clientContext = new ClientContext(this);
+               healingQueue = new SimpleHealingQueue(
+                               new InsertContext(tempBucketFactory, 
tempBucketFactory, persistentTempBucketFactory,
+                                               0, 2, 1, 0, 0, new 
SimpleEventProducer(),
+                                               
!Node.DONT_CACHE_LOCAL_REQUESTS), RequestStarter.PREFETCH_PRIORITY_CLASS, 512 
/* FIXME make configurable */);
+               
+               clientContext = new ClientContext(this, fecQueue, 
clientDatabaseExecutor, backgroundBlockEncoder, archiveManager, 
persistentTempBucketFactory, persistentTempBucketFactory, healingQueue, 
uskManager, random, random, null, persistentFilenameGenerator, 
persistentFilenameGenerator);
                storeChecker.setContext(clientContext);

                requestStarters = new RequestStarterGroup(node, this, 
portNumber, random, config, throttleFS, clientContext);
                clientContext.init(requestStarters);
                InsertCompressor.load(container, clientContext);

-               healingQueue = new SimpleHealingQueue(
-                               new InsertContext(tempBucketFactory, 
tempBucketFactory, persistentTempBucketFactory,
-                                               0, 2, 1, 0, 0, new 
SimpleEventProducer(),
-                                               
!Node.DONT_CACHE_LOCAL_REQUESTS), RequestStarter.PREFETCH_PRIORITY_CLASS, 512 
/* FIXME make configurable */);
-               
                node.securityLevels.addPhysicalThreatLevelListener(new 
SecurityLevelListener<PHYSICAL_THREAT_LEVEL>() {

                        public void onChange(PHYSICAL_THREAT_LEVEL oldLevel, 
PHYSICAL_THREAT_LEVEL newLevel) {


Reply via email to