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();
                        }


Reply via email to