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

Reply via email to