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

Reply via email to