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"));