Author: toad
Date: 2008-06-27 12:48:21 +0000 (Fri, 27 Jun 2008)
New Revision: 20819
Modified:
branches/db4o/freenet/src/freenet/client/async/USKFetcher.java
Log:
Hopefully fix "File already freed" in USKFetcher
Modified: branches/db4o/freenet/src/freenet/client/async/USKFetcher.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/USKFetcher.java
2008-06-27 12:45:58 UTC (rev 20818)
+++ branches/db4o/freenet/src/freenet/client/async/USKFetcher.java
2008-06-27 12:48:21 UTC (rev 20819)
@@ -334,7 +334,7 @@
Bucket data = null;
if(decode) {
try {
- data = lastRequestData =
block.decode(context.getBucketFactory(parent.persistent()), 1025 /* it's an SSK
*/, true);
+ data =
block.decode(context.getBucketFactory(parent.persistent()), 1025 /* it's an SSK
*/, true);
} catch (KeyDecodeException e) {
data = null;
} catch (IOException e) {
@@ -345,8 +345,11 @@
if (decode) {
lastCompressionCodec =
block.getCompressionCodec();
lastWasMetadata = block.isMetadata();
- if(keepLastData)
+ if(keepLastData) {
+ if(lastRequestData != null)
+ lastRequestData.free();
lastRequestData = data;
+ }
else
data.free();
}