Author: toad
Date: 2008-07-22 16:02:14 +0000 (Tue, 22 Jul 2008)
New Revision: 21314
Modified:
branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerNonPersistent.java
Log:
Avoid problems related to accessing a not fully constructed object by passing
booleans in explicitly for isSSK and isInsert
Modified:
branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
2008-07-22 15:59:06 UTC (rev 21313)
+++ branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
2008-07-22 16:02:14 UTC (rev 21314)
@@ -115,7 +115,7 @@
this.isSSKScheduler = forSSKs;
this.selectorContainer = node.db;
schedCore = ClientRequestSchedulerCore.create(node, forInserts,
forSSKs, selectorContainer, COOLDOWN_PERIOD, core.clientDatabaseExecutor, this,
context);
- schedTransient = new ClientRequestSchedulerNonPersistent(this);
+ schedTransient = new ClientRequestSchedulerNonPersistent(this,
forInserts, forSSKs);
schedCore.fillStarterQueue(selectorContainer);
schedCore.start(core);
persistentCooldownQueue = schedCore.persistentCooldownQueue;
Modified:
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerNonPersistent.java
===================================================================
---
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerNonPersistent.java
2008-07-22 15:59:06 UTC (rev 21313)
+++
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerNonPersistent.java
2008-07-22 16:02:14 UTC (rev 21314)
@@ -37,10 +37,10 @@
* itself. */
protected final Map /* <Key, SendableGet[]> */ pendingKeys;
- ClientRequestSchedulerNonPersistent(ClientRequestScheduler sched) {
- super(sched.isInsertScheduler, sched.isSSKScheduler, new
HashMap(), new LinkedList());
+ ClientRequestSchedulerNonPersistent(ClientRequestScheduler sched,
boolean forInserts, boolean forSSKs) {
+ super(forInserts, forSSKs, new HashMap(), new LinkedList());
recentSuccesses = new LinkedList();
- if(sched.isInsertScheduler)
+ if(forInserts)
pendingKeys = null;
else
pendingKeys = new HashMap();