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) {