Author: toad
Date: 2008-03-31 12:13:01 +0000 (Mon, 31 Mar 2008)
New Revision: 18869

Modified:
   trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java
Log:
Catch a throwable when running callbacks

Modified: trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java
===================================================================
--- trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java  
2008-03-31 12:12:09 UTC (rev 18868)
+++ trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java  
2008-03-31 12:13:01 UTC (rev 18869)
@@ -642,7 +642,11 @@
                        public void run() {
                                if(logMINOR) Logger.minor(this, "Running 
"+gets.length+" callbacks off-thread for "+block.getKey());
                                for(int i=0;i<gets.length;i++) {
-                                       gets[i].onGotKey(key, block, 
ClientRequestScheduler.this);
+                                       try {
+                                               gets[i].onGotKey(key, block, 
ClientRequestScheduler.this);
+                                       } catch (Throwable t) {
+                                               Logger.error(this, "Caught 
"+t+" running callback "+gets[i]+" for "+key);
+                                       }
                                }
                                if(logMINOR) Logger.minor(this, "Finished 
running callbacks");
                        }


Reply via email to