Author: toad
Date: 2009-01-31 17:35:58 +0000 (Sat, 31 Jan 2009)
New Revision: 25448
Modified:
branches/db4o/freenet/src/freenet/client/FECQueue.java
Log:
Always delete the job, even if the callback throws
Modified: branches/db4o/freenet/src/freenet/client/FECQueue.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/FECQueue.java 2009-01-31
16:01:36 UTC (rev 25447)
+++ branches/db4o/freenet/src/freenet/client/FECQueue.java 2009-01-31
17:35:58 UTC (rev 25448)
@@ -217,11 +217,15 @@
container.activate(job.callback, 1);
if(Logger.shouldLog(Logger.MINOR, this))
Logger.minor(this, "Running callback for "+job);
+ try {
if(job.isADecodingJob)
job.callback.onDecodedSegment(container, clientContext, job, job.dataBlocks,
job.checkBlocks, job.dataBlockStatus, job.checkBlockStatus);
else
job.callback.onEncodedSegment(container, clientContext, job, job.dataBlocks,
job.checkBlocks, job.dataBlockStatus, job.checkBlockStatus);
-
container.delete(job);
+ }
finally {
+
// Always delete the job, even if the callback throws.
+
container.delete(job);
+ }
if(container.ext().isStored(job.callback))
container.deactivate(job.callback, 1);
}
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs