Author: toad
Date: 2009-01-09 23:21:25 +0000 (Fri, 09 Jan 2009)
New Revision: 24997
Modified:
trunk/freenet/src/freenet/client/async/SplitFileInserter.java
Log:
Port 24745 and 24996 from db4o to trunk: Pad the last block of a splitfile
BEFORE INSERT, not during FEC encoding.
Insert it padded, hence we can pad in any way we like, it doesn't matter.
Current code should truncate the file correctly.
Modified: trunk/freenet/src/freenet/client/async/SplitFileInserter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SplitFileInserter.java
2009-01-09 23:18:22 UTC (rev 24996)
+++ trunk/freenet/src/freenet/client/async/SplitFileInserter.java
2009-01-09 23:21:25 UTC (rev 24997)
@@ -85,6 +85,11 @@
Bucket[] dataBuckets;
try {
dataBuckets = BucketTools.split(data,
CHKBlock.DATA_LENGTH, ctx.persistentBucketFactory, freeData);
+ if(dataBuckets[dataBuckets.length-1].size() <
CHKBlock.DATA_LENGTH) {
+ Bucket oldData =
dataBuckets[dataBuckets.length-1];
+ dataBuckets[dataBuckets.length-1] =
BucketTools.pad(oldData, CHKBlock.DATA_LENGTH, ctx.persistentBucketFactory,
(int) oldData.size());
+ oldData.free();
+ }
} catch (IOException e) {
throw new InsertException(InsertException.BUCKET_ERROR,
e, null);
}
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs