Author: toad
Date: 2009-03-07 14:01:13 +0000 (Sat, 07 Mar 2009)
New Revision: 25932

Modified:
   branches/db4o/freenet/src/freenet/support/io/DelayedFreeBucket.java
Log:
Debugging/logging


Modified: branches/db4o/freenet/src/freenet/support/io/DelayedFreeBucket.java
===================================================================
--- branches/db4o/freenet/src/freenet/support/io/DelayedFreeBucket.java 
2009-03-07 14:00:45 UTC (rev 25931)
+++ branches/db4o/freenet/src/freenet/support/io/DelayedFreeBucket.java 
2009-03-07 14:01:13 UTC (rev 25932)
@@ -22,6 +22,7 @@
        Bucket bucket;
        boolean freed;
        boolean removed;
+       boolean reallyRemoved;
        
        public boolean toFree() {
                return freed;
@@ -148,6 +149,11 @@
        }
 
        public void realRemoveFrom(ObjectContainer container) {
+               synchronized(this) {
+                       if(reallyRemoved)
+                               Logger.error(this, "Calling realRemoveFrom() 
twice on "+this);
+                       reallyRemoved = true;
+               }
                bucket.removeFrom(container);
                container.delete(this);
        }
@@ -155,4 +161,21 @@
 //     public void objectOnDeactivate(ObjectContainer container) {
 //             if(Logger.shouldLog(Logger.MINOR, this)) Logger.minor(this, 
"Deactivating "+super.toString()+" : "+bucket, new Exception("debug"));
 //     }
+       
+       public boolean objectCanNew(ObjectContainer container) {
+               if(reallyRemoved) {
+                       Logger.error(this, "objectCanNew() on "+this+" but 
really removed = "+reallyRemoved+" already freed="+freed+" removed="+removed, 
new Exception("debug"));
+                       return false;
+               }
+               return true;
+       }
+       
+       public boolean objectCanUpdate(ObjectContainer container) {
+               if(reallyRemoved) {
+                       Logger.error(this, "objectCanUpdate() on "+this+" but 
really removed = "+reallyRemoved+" already freed="+freed+" removed="+removed, 
new Exception("debug"));
+                       return false;
+               }
+               return true;
+       }
+
 }
\ No newline at end of file

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

Reply via email to