Author: toad
Date: 2008-10-02 22:07:34 +0000 (Thu, 02 Oct 2008)
New Revision: 22919
Modified:
branches/db4o/freenet/src/freenet/client/async/SplitFileFetcher.java
branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
Log:
Activation on decodedLength()
Modified: branches/db4o/freenet/src/freenet/client/async/SplitFileFetcher.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SplitFileFetcher.java
2008-10-02 22:06:54 UTC (rev 22918)
+++ branches/db4o/freenet/src/freenet/client/async/SplitFileFetcher.java
2008-10-02 22:07:34 UTC (rev 22919)
@@ -114,6 +114,8 @@
FetchContext newCtx, ArrayList decompressors2,
ClientMetadata clientMetadata,
ArchiveContext actx, int recursionLevel, Bucket
returnBucket, long token2, ObjectContainer container, ClientContext context)
throws FetchException, MetadataParseException {
this.persistent = parent2.persistent();
+ if(Logger.shouldLog(Logger.MINOR, this))
+ Logger.minor(this, "Persistence = "+persistent+" from
"+parent2, new Exception("debug"));
this.hashCode = super.hashCode();
this.finished = false;
this.returnBucket = returnBucket;
@@ -345,9 +347,10 @@
}
s.throwError();
// If still here, it succeeded
- finalLength += s.decodedLength();
+ long sz = s.decodedLength(container);
+ finalLength += sz;
if(logMINOR)
- Logger.minor(this, "Segment "+i+" decoded
length "+s.decodedLength()+" total length now "+finalLength+" for
"+s.dataBuckets.length+" blocks which should be "+(s.dataBuckets.length *
NodeCHK.BLOCK_SIZE));
+ Logger.minor(this, "Segment "+i+" decoded
length "+sz+" total length now "+finalLength+" for "+s.dataBuckets.length+"
blocks which should be "+(s.dataBuckets.length * NodeCHK.BLOCK_SIZE));
// Healing is done by Segment
}
if(finalLength > overrideLength) {
@@ -443,6 +446,8 @@
}
finished = true;
}
+ if(persistent)
+ container.store(this);
Bucket data = finalStatus(container, context);
// Decompress
if(persistent) {
Modified:
branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
2008-10-02 22:06:54 UTC (rev 22918)
+++ branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
2008-10-02 22:07:34 UTC (rev 22919)
@@ -160,8 +160,11 @@
throw failureException;
}
- /** Decoded length? */
- public long decodedLength() {
+ /** Decoded length?
+ * @param container */
+ public long decodedLength(ObjectContainer container) {
+ if(persistent)
+ container.activate(decodedData, 1);
return decodedData.size();
}