Author: toad
Date: 2009-01-24 18:26:06 +0000 (Sat, 24 Jan 2009)
New Revision: 25284
Modified:
branches/db4o/freenet/src/freenet/client/async/SplitFileInserterSegment.java
Log:
If the insert has been cancelled, and we get an onEncodedSegment() anyway, log
an error, free the encoded blocks, and exit without starting any inserters.
Modified:
branches/db4o/freenet/src/freenet/client/async/SplitFileInserterSegment.java
===================================================================
---
branches/db4o/freenet/src/freenet/client/async/SplitFileInserterSegment.java
2009-01-24 18:24:41 UTC (rev 25283)
+++
branches/db4o/freenet/src/freenet/client/async/SplitFileInserterSegment.java
2009-01-24 18:26:06 UTC (rev 25284)
@@ -502,6 +502,28 @@
container.activate(parent, 1);
container.activate(parent.parent, 1);
}
+ boolean fin;
+ synchronized(this) {
+ fin = finished;
+ }
+ if(fin) {
+ Logger.error(this, "Encoded segment even though segment
finished! Freeing buckets...");
+ for(int i=0;i<dataBuckets.length;i++) {
+ if(dataBuckets[i] == null) continue;
+ dataBuckets[i].free();
+ if(persistent)
+ dataBuckets[i].removeFrom(container);
+ dataBuckets[i] = null;
+ }
+ for(int i=0;i<checkBuckets.length;i++) {
+ if(checkBuckets[i] == null) continue;
+ checkBuckets[i].free();
+ if(persistent)
+ checkBuckets[i].removeFrom(container);
+ checkBuckets[i] = null;
+ }
+ return;
+ }
logMINOR = Logger.shouldLog(Logger.MINOR, this);
// Start the inserts
try {
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs