[concurrency-interest] ThreadPoolExecutor.afterExecute(Runnable r,
Throwable t) is not behaving as per documentation
Jagadheeswar Reddy
reddyj at gmail.com
Wed May 3 22:34:35 EDT 2006
Hi ,
I have created a runnable task and deliberately created an unchecked
exception in my run method.
My class TaskExecutor extends ThreadPoolExecutor and overrides
afterExecute method .
When I check for Throwable object in this method, it is still null,
inspite of throwing unchecked exception in run method
My code:
public class TaskExecutor extends ThreadPoolExecutor {
public TaskExecutor() {
super(2, 2, 10, TimeUnit.SECONDS, new
ArrayBlockingQueue<Runnable>(5));
}
public boolean scheduleTask(Runnable r) {
Future<Object> resultFetcher;
Object result = "hello runnable
executed successfully";
resultFetcher =submit(r, result);
return true;
}
protected void afterExecute(Runnable r,Throwable t){
try{
super.afterExecute(r,t);
System.out.println("inside the
method afterExecute");
if(t!=null){
System.out.println("Exception is thrown in Runnable method");
}
}catch(Exception e){
e.printStackTrace();
}
}
}
My runnable task run method throws NullPointerException :
public void run(){
Object out=null;
System.out.println("inside the runnable task
method"+out.toString());
}
Please let me know if iam doing something wrong
Thanks& Regards
Reddy
-------------- next part --------------
An HTML attachment was scrubbed...
URL: /pipermail/attachments/20060503/897dc686/attachment.html
More information about the Concurrency-interest
mailing list