did you think about whether this various threads should be setDaemon(true) or not? I don't know whether they should just a reminder to check