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


Reply via email to