Author: toad
Date: 2008-10-25 19:12:18 +0000 (Sat, 25 Oct 2008)
New Revision: 23098

Modified:
   branches/db4o/freenet/src/freenet/node/NodeClientCore.java
   branches/db4o/freenet/src/freenet/support/io/DelayedFreeBucket.java
Log:
Doh! Actually free the buckets!
Also logging.


Modified: branches/db4o/freenet/src/freenet/node/NodeClientCore.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/NodeClientCore.java  2008-10-25 
06:53:37 UTC (rev 23097)
+++ branches/db4o/freenet/src/freenet/node/NodeClientCore.java  2008-10-25 
19:12:18 UTC (rev 23098)
@@ -6,6 +6,8 @@
 import java.util.Iterator;
 import java.util.LinkedList;

+import org.tanukisoftware.wrapper.WrapperManager;
+
 import com.db4o.ObjectContainer;

 import freenet.client.ArchiveManager;
@@ -67,7 +69,6 @@
 import freenet.support.PrioritizedSerialExecutor;
 import freenet.support.SimpleFieldSet;
 import freenet.support.api.BooleanCallback;
-import freenet.support.api.Bucket;
 import freenet.support.api.IntCallback;
 import freenet.support.api.LongCallback;
 import freenet.support.api.StringArrCallback;
@@ -1347,9 +1348,9 @@
                                        DelayedFreeBucket bucket = i.next();
                                        try {
                                                if(bucket.toFree())
-                                                       bucket.free();
+                                                       bucket.realFree();
                                                if(bucket.toRemove())
-                                                       
bucket.removeFrom(node.db);
+                                                       
bucket.realRemoveFrom(node.db);
                                        } catch (Throwable t) {
                                                Logger.error(this, "Caught 
"+t+" freeing bucket "+bucket+" after transaction commit");
                                        }
@@ -1401,6 +1402,7 @@
                synchronized(this) {
                        killedDatabase = true;
                }
+               WrapperManager.requestThreadDump();
                System.err.println("Out of memory: Emergency shutdown to 
protect database integrity in progress...");
                
System.exit(NodeInitException.EXIT_OUT_OF_MEMORY_PROTECTING_DATABASE);
        }

Modified: branches/db4o/freenet/src/freenet/support/io/DelayedFreeBucket.java
===================================================================
--- branches/db4o/freenet/src/freenet/support/io/DelayedFreeBucket.java 
2008-10-25 06:53:37 UTC (rev 23097)
+++ branches/db4o/freenet/src/freenet/support/io/DelayedFreeBucket.java 
2008-10-25 19:12:18 UTC (rev 23098)
@@ -148,6 +148,14 @@
        public Bucket createShadow() throws IOException {
                return bucket.createShadow();
        }
+
+       public void realFree() {
+               bucket.free();
+       }
+
+       public void realRemoveFrom(ObjectContainer container) {
+               bucket.removeFrom(container);
+       }

 //     public void objectOnDeactivate(ObjectContainer container) {
 //             if(Logger.shouldLog(Logger.MINOR, this)) Logger.minor(this, 
"Deactivating "+super.toString()+" : "+bucket, new Exception("debug"));


Reply via email to