Author: toad
Date: 2009-01-27 16:50:44 +0000 (Tue, 27 Jan 2009)
New Revision: 25318
Modified:
branches/db4o/freenet/src/freenet/node/NodeClientCore.java
branches/db4o/freenet/src/freenet/support/io/PersistentTempBucketFactory.java
Log:
Factor out cleanup of buckets to post-commit hook method
Modified: branches/db4o/freenet/src/freenet/node/NodeClientCore.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/NodeClientCore.java 2009-01-27
15:13:37 UTC (rev 25317)
+++ branches/db4o/freenet/src/freenet/node/NodeClientCore.java 2009-01-27
16:50:44 UTC (rev 25318)
@@ -1373,18 +1373,7 @@
} else
node.db.commit();
if(Logger.shouldLog(Logger.MINOR, this))
Logger.minor(this, "COMMITTED");
- LinkedList<DelayedFreeBucket> toFree =
persistentTempBucketFactory.grabBucketsToFree();
- for(Iterator<DelayedFreeBucket>
i=toFree.iterator();i.hasNext();) {
- DelayedFreeBucket bucket = i.next();
- try {
- if(bucket.toFree())
- bucket.realFree();
- if(bucket.toRemove())
-
bucket.realRemoveFrom(node.db);
- } catch (Throwable t) {
- Logger.error(this, "Caught
"+t+" freeing bucket "+bucket+" after transaction commit", t);
- }
- }
+ persistentTempBucketFactory.postCommit(node.db);
} catch (Throwable t) {
if(t instanceof OutOfMemoryError) {
synchronized(NodeClientCore.this) {
Modified:
branches/db4o/freenet/src/freenet/support/io/PersistentTempBucketFactory.java
===================================================================
---
branches/db4o/freenet/src/freenet/support/io/PersistentTempBucketFactory.java
2009-01-27 15:13:37 UTC (rev 25317)
+++
branches/db4o/freenet/src/freenet/support/io/PersistentTempBucketFactory.java
2009-01-27 16:50:44 UTC (rev 25318)
@@ -7,6 +7,7 @@
import java.io.FileFilter;
import java.io.IOException;
import java.util.HashSet;
+import java.util.Iterator;
import java.util.LinkedList;
import java.util.Random;
@@ -201,4 +202,19 @@
public void setEncryption(boolean encrypt) {
this.encrypt = encrypt;
}
+
+ public void postCommit(ObjectContainer db) {
+ LinkedList<DelayedFreeBucket> toFree = grabBucketsToFree();
+ for(Iterator<DelayedFreeBucket>
i=toFree.iterator();i.hasNext();) {
+ DelayedFreeBucket bucket = i.next();
+ try {
+ if(bucket.toFree())
+ bucket.realFree();
+ if(bucket.toRemove())
+ bucket.realRemoveFrom(db);
+ } catch (Throwable t) {
+ Logger.error(this, "Caught "+t+" freeing bucket
"+bucket+" after transaction commit", t);
+ }
+ }
+ }
}
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs