Author: toad
Date: 2008-10-31 18:11:23 +0000 (Fri, 31 Oct 2008)
New Revision: 23262

Modified:
   branches/db4o/freenet/src/freenet/support/io/SegmentedBucketChainBucket.java
   
branches/db4o/freenet/src/freenet/support/io/SegmentedBucketChainBucketKillJob.java
   branches/db4o/freenet/src/freenet/support/io/SegmentedChainBucketSegment.java
Log:
Fix removing contents on startup, now that removeFrom() is gone.


Modified: 
branches/db4o/freenet/src/freenet/support/io/SegmentedBucketChainBucket.java
===================================================================
--- 
branches/db4o/freenet/src/freenet/support/io/SegmentedBucketChainBucket.java    
    2008-10-31 18:10:17 UTC (rev 23261)
+++ 
branches/db4o/freenet/src/freenet/support/io/SegmentedBucketChainBucket.java    
    2008-10-31 18:11:23 UTC (rev 23262)
@@ -362,4 +362,12 @@
                segments.clear();
        }

+       synchronized void removeContents(ObjectContainer container) {
+               for(SegmentedChainBucketSegment seg : segments) {
+                       seg.removeFrom(container);
+               }
+               container.delete(segments);
+               container.delete(this);
+       }
+       
 }

Modified: 
branches/db4o/freenet/src/freenet/support/io/SegmentedBucketChainBucketKillJob.java
===================================================================
--- 
branches/db4o/freenet/src/freenet/support/io/SegmentedBucketChainBucketKillJob.java
 2008-10-31 18:10:17 UTC (rev 23261)
+++ 
branches/db4o/freenet/src/freenet/support/io/SegmentedBucketChainBucketKillJob.java
 2008-10-31 18:11:23 UTC (rev 23262)
@@ -16,7 +16,7 @@
        public void run(ObjectContainer container, ClientContext context) {
                container.activate(bcb, 1);
                System.err.println("Freeing unfinished unstored bucket "+this);
-               bcb.removeFrom(container);
+               bcb.removeContents(container);
        }

 }

Modified: 
branches/db4o/freenet/src/freenet/support/io/SegmentedChainBucketSegment.java
===================================================================
--- 
branches/db4o/freenet/src/freenet/support/io/SegmentedChainBucketSegment.java   
    2008-10-31 18:10:17 UTC (rev 23261)
+++ 
branches/db4o/freenet/src/freenet/support/io/SegmentedChainBucketSegment.java   
    2008-10-31 18:11:23 UTC (rev 23262)
@@ -68,5 +68,14 @@
                container.delete(buckets);
                container.delete(this);
        }
+       
+       public void removeFrom(ObjectContainer container) {
+               for(Bucket bucket : buckets) {
+                       container.activate(bucket, 1);
+                       bucket.removeFrom(container);
+               }
+               container.delete(buckets);
+               container.delete(this);
+       }

 }


Reply via email to