I've looked over the code and it looks right. I like the
InteruptedException for telling threads to stop. The only gotcha is
that a lot of the old Hadoop code ignores InterruptedException. But
looking at the code in that thread, there is only one handler and it
re-interrupts the thread. So it should be fine. If you can get a
stack trace, I would certainly like to see it.
One side note is that all of the servers have a servlet such that if
you do http://<node>:<port>/stacks you'll get a stack trace of all
the threads in the server. I find that useful for remote debugging.
*smile* Although if it is a task jvm that has the problem, then there
isn't a server for them.
-- Owen