Author: toad
Date: 2008-12-17 15:47:21 +0000 (Wed, 17 Dec 2008)
New Revision: 24447
Modified:
branches/db4o/freenet/src/freenet/support/io/SegmentedBucketChainBucket.java
Log:
Fix NPE, remove segments on freeing.
Modified:
branches/db4o/freenet/src/freenet/support/io/SegmentedBucketChainBucket.java
===================================================================
---
branches/db4o/freenet/src/freenet/support/io/SegmentedBucketChainBucket.java
2008-12-17 15:38:29 UTC (rev 24446)
+++
branches/db4o/freenet/src/freenet/support/io/SegmentedBucketChainBucket.java
2008-12-17 15:47:21 UTC (rev 24447)
@@ -60,13 +60,23 @@
}
public void free() {
- SegmentedChainBucketSegment[] segs;
- synchronized(this) {
- segs = segments.toArray(new
SegmentedChainBucketSegment[segments.size()]);
- segments.clear();
- }
- for(SegmentedChainBucketSegment segment : segs)
- segment.free();
+ dbJobRunner.queue(new DBJob() {
+
+ public void run(ObjectContainer container,
ClientContext context) {
+ SegmentedChainBucketSegment[] segs;
+ synchronized(this) {
+ segs = segments.toArray(new
SegmentedChainBucketSegment[segments.size()]);
+ segments.clear();
+ }
+ for(SegmentedChainBucketSegment segment : segs)
{
+ container.activate(segment, 1);
+ segment.activateBuckets(container);
+ segment.free();
+ segment.removeFrom(container);
+ }
+ }
+
+ }, NativeThread.HIGH_PRIORITY, false);
}
public InputStream getInputStream() throws IOException {
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs