Author: toad
Date: 2009-02-13 21:28:52 +0000 (Fri, 13 Feb 2009)
New Revision: 25629
Modified:
branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
Log:
Don't allow the last check block to be too short
Modified:
branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
2009-02-13 15:38:57 UTC (rev 25628)
+++ branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
2009-02-13 21:28:52 UTC (rev 25629)
@@ -262,25 +262,25 @@
container.store(dataBuckets[blockNo]);
}
} else if(blockNo < checkKeys.length + dataKeys.length) {
- blockNo -= dataKeys.length;
- if(checkKeys[blockNo] == null) {
+ int checkNo = blockNo - dataKeys.length;
+ if(checkKeys[checkNo] == null) {
if(!startedDecode) {
if(logMINOR)
- Logger.minor(this, "Check block
already finished: "+blockNo);
+ Logger.minor(this, "Check block
already finished: "+checkNo);
}
data.free();
return -1;
}
- checkRetries[blockNo] = 0; // Prevent healing of
successfully fetched block.
+ checkRetries[checkNo] = 0; // Prevent healing of
successfully fetched block.
if(persistent)
- checkKeys[blockNo].removeFrom(container);
- checkKeys[blockNo] = null;
+ checkKeys[checkNo].removeFrom(container);
+ checkKeys[checkNo] = null;
if(persistent)
- container.activate(checkBuckets[blockNo], 1);
- checkBuckets[blockNo].setData(data);
+ container.activate(checkBuckets[checkNo], 1);
+ checkBuckets[checkNo].setData(data);
if(persistent) {
data.storeTo(container);
- container.store(checkBuckets[blockNo]);
+ container.store(checkBuckets[checkNo]);
}
} else
Logger.error(this, "Unrecognized block number:
"+blockNo, new Exception("error"));
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs