It's a kind of bug in java.util.Timer. Calling TimerTask.cancel() causes the
registered task from being dereferenced in Timer's internal data structure. It is
because the Timer developers assumed that the cancellation of tasks would not happen that
often.
The solution is probably destroying the parent Timer class and create a new one. In Java
5, java.util.concurrent.ScheduledThreadPoolExecutor provides a method that purges the
references to the cancelled tasks. It's so inconvenient anyway.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4150209#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...