Author: toad
Date: 2008-02-18 12:10:31 +0000 (Mon, 18 Feb 2008)
New Revision: 18035
Modified:
trunk/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
Log:
We don't always return here, so blockNo -= dataKeys.length causes us to
rerequest the wrong block.
Modified: trunk/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
2008-02-18 12:03:02 UTC (rev 18034)
+++ trunk/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
2008-02-18 12:10:31 UTC (rev 18035)
@@ -382,11 +382,11 @@
return; // Don't add to sub-segment yet.
}
} else {
- blockNo -= dataKeys.length;
- tries = ++checkRetries[blockNo];
+ int checkNo = blockNo - dataKeys.length;
+ tries = ++checkRetries[checkNo];
if(tries > maxTries && maxTries >= 0) failed =
true;
else if(tries %
ClientRequestScheduler.COOLDOWN_RETRIES == 0) {
- checkCooldownTimes[blockNo] =
sched.queueCooldown(checkKeys[blockNo]);
+ checkCooldownTimes[checkNo] =
sched.queueCooldown(checkKeys[checkNo]);
return; // Don't add to sub-segment yet.
}
}