Author: toad
Date: 2008-06-19 18:13:56 +0000 (Thu, 19 Jun 2008)
New Revision: 20499

Modified:
   branches/db4o/freenet/src/freenet/node/NodeClientCore.java
Log:
Free unwanted buckets after each successful commit.

Modified: branches/db4o/freenet/src/freenet/node/NodeClientCore.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/NodeClientCore.java  2008-06-19 
16:29:03 UTC (rev 20498)
+++ branches/db4o/freenet/src/freenet/node/NodeClientCore.java  2008-06-19 
18:13:56 UTC (rev 20499)
@@ -3,6 +3,8 @@
 import java.io.File;
 import java.io.IOException;
 import java.net.URI;
+import java.util.Iterator;
+import java.util.LinkedList;

 import com.db4o.ObjectContainer;

@@ -60,6 +62,7 @@
 import freenet.support.SerialExecutor;
 import freenet.support.SimpleFieldSet;
 import freenet.support.api.BooleanCallback;
+import freenet.support.api.Bucket;
 import freenet.support.api.BucketFactory;
 import freenet.support.api.IntCallback;
 import freenet.support.api.StringArrCallback;
@@ -1188,6 +1191,15 @@
                        try {
                                job.run(node.db, clientContext);
                                node.db.commit();
+                               LinkedList toFree = 
persistentTempBucketFactory.grabBucketsToFree();
+                               for(Iterator i=toFree.iterator();i.hasNext();) {
+                                       Bucket bucket = (Bucket)i.next();
+                                       try {
+                                               bucket.free();
+                                       } catch (Throwable t) {
+                                               Logger.error(this, "Caught 
"+t+" freeing bucket "+bucket+" after transaction commit");
+                                       }
+                               }
                        } catch (Throwable t) {
                                Logger.error(this, "Failed to run database job 
"+job+" : caught "+t, t);
                        }


Reply via email to