Author: toad
Date: 2009-03-17 15:18:43 +0000 (Tue, 17 Mar 2009)
New Revision: 26063

Modified:
   branches/db4o/freenet/src/freenet/client/async/ClientGetter.java
   branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java
Log:
Fix FileBucket leak in persistent downloads, and probably NPE on restarting 
failed downloads too: Remove the returnBucket in ClientGetter.removeFrom()


Modified: branches/db4o/freenet/src/freenet/client/async/ClientGetter.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/ClientGetter.java    
2009-03-17 15:16:55 UTC (rev 26062)
+++ branches/db4o/freenet/src/freenet/client/async/ClientGetter.java    
2009-03-17 15:18:43 UTC (rev 26063)
@@ -426,6 +426,10 @@
                ctx.removeFrom(container);
                container.activate(actx, 5);
                actx.removeFrom(container);
+               if(returnBucket != null) {
+                       container.activate(returnBucket, 1);
+                       returnBucket.removeFrom(container);
+               }
                super.removeFrom(container, context);
        }
 }

Modified: branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java   2009-03-17 
15:16:55 UTC (rev 26062)
+++ branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java   2009-03-17 
15:18:43 UTC (rev 26063)
@@ -436,8 +436,6 @@
                        trySendAllDataMessage(adm, null, container);
                if(!dontFree) {
                        data.free();
-                       if(persistenceType == PERSIST_FOREVER)
-                               data.removeFrom(container);
                }
                if(persistenceType == PERSIST_FOREVER) {
                        returnBucket.storeTo(container);

_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs

Reply via email to