r26674 - trunk/freenet/src/freenet/client/async

[email protected]
Newsgroups gmane.network.freenet.cvs
Message-ID <[email protected]>
Author: toad
Date: 2009-04-09 13:07:52 +0000 (Thu, 09 Apr 2009)
New Revision: 26674

Modified:
   trunk/freenet/src/freenet/client/async/ClientRequestSchedulerCore.java
   trunk/freenet/src/freenet/client/async/ClientRequestSchedulerNonPersistent.java
Log:
No recentSuccesses for inserts. Fixes NPE in selecting inserts. :|


Modified: trunk/freenet/src/freenet/client/async/ClientRequestSchedulerCore.java
===================================================================
--- trunk/freenet/src/freenet/client/async/ClientRequestSchedulerCore.java	2009-04-09 10:19:17 UTC (rev 26673)
+++ trunk/freenet/src/freenet/client/async/ClientRequestSchedulerCore.java	2009-04-09 13:07:52 UTC (rev 26674)
@@ -498,7 +498,7 @@
 				 * FIXME: Only replaces persistent requests with persistent requests (of similar priority and retry count), or transient with transient.
 				 * Probably this is acceptable.
 				 */
-				if(!req.persistent()) {
+				if(!req.persistent() && !isInsertScheduler) {
 					List recent = schedTransient.recentSuccesses;
 					SendableRequest altReq = null;
 					if(!recent.isEmpty()) {
@@ -526,7 +526,7 @@
 							recent.add(altReq);
 						}
 					}
-				} else {
+				} else if(!isInsertScheduler) {
 					RandomGrabArray altRGA = null;
 					synchronized(recentSuccesses) {
 						if(!(recentSuccesses.isEmpty() || random.nextBoolean())) {

Modified: trunk/freenet/src/freenet/client/async/ClientRequestSchedulerNonPersistent.java
===================================================================
--- trunk/freenet/src/freenet/client/async/ClientRequestSchedulerNonPersistent.java	2009-04-09 10:19:17 UTC (rev 26673)
+++ trunk/freenet/src/freenet/client/async/ClientRequestSchedulerNonPersistent.java	2009-04-09 13:07:52 UTC (rev 26674)
@@ -26,7 +26,10 @@
 	ClientRequestSchedulerNonPersistent(ClientRequestScheduler sched, boolean forInserts, boolean forSSKs) {
 		super(forInserts, forSSKs);
 		this.sched = sched;
-		recentSuccesses = new LinkedList<BaseSendableGet>();
+		if(!forInserts)
+			recentSuccesses = new LinkedList<BaseSendableGet>();
+		else
+			recentSuccesses = null;
 		logMINOR = Logger.shouldLog(Logger.MINOR, this);
 	}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.