Author: toad
Date: 2008-08-27 18:53:52 +0000 (Wed, 27 Aug 2008)
New Revision: 22195
Modified:
branches/db4o/freenet/src/freenet/client/async/SplitFileFetcher.java
Log:
Deactivation
Modified: branches/db4o/freenet/src/freenet/client/async/SplitFileFetcher.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SplitFileFetcher.java
2008-08-27 16:09:08 UTC (rev 22194)
+++ branches/db4o/freenet/src/freenet/client/async/SplitFileFetcher.java
2008-08-27 18:53:52 UTC (rev 22195)
@@ -266,6 +266,7 @@
if(persistent) {
container.set(segments[0]);
segments[0].deactivateKeys(container);
+ container.deactivate(segments[0], 1);
}
} else {
int dataBlocksPtr = 0;
@@ -280,8 +281,6 @@
System.arraycopy(splitfileDataBlocks,
dataBlocksPtr, dataBlocks, 0, copyDataBlocks);
if(copyCheckBlocks > 0)
System.arraycopy(splitfileCheckBlocks,
checkBlocksPtr, checkBlocks, 0, copyCheckBlocks);
- dataBlocksPtr += copyDataBlocks;
- checkBlocksPtr += copyCheckBlocks;
segments[i] = new
SplitFileFetcherSegment(splitfileType, dataBlocks, checkBlocks, this,
archiveContext,
fetchContext, maxTempLength,
recursionLevel+1, parent, i);
for(int j=0;j<dataBlocks.length;j++)
@@ -291,7 +290,14 @@
if(persistent) {
container.set(segments[i]);
segments[i].deactivateKeys(container);
+ container.deactivate(segments[i], 1);
+ for(int
x=dataBlocksPtr;x<dataBlocksPtr+copyDataBlocks;x++)
+ splitfileDataBlocks[x] = null;
+ for(int
x=checkBlocksPtr;x<checkBlocksPtr+copyCheckBlocks;x++)
+ splitfileCheckBlocks[x] = null;
}
+ dataBlocksPtr += copyDataBlocks;
+ checkBlocksPtr += copyCheckBlocks;
}
if(dataBlocksPtr != splitfileDataBlocks.length)
throw new
FetchException(FetchException.INVALID_METADATA, "Unable to allocate all data
blocks to segments - buggy or malicious inserter");