Ceki: assuming that your question was addressed to me, the answer is sorta. In particular, I had a server thread that normally blocks on a ServerSocket.accept call, but if a client is accepted, then it repeatedly blocks on Socket.read calls (wrapped in a BufferedReader.readLine calls) in which it reads commands from a single client to execute. If another thread wants to stop that server, it needs to interrupt that server thread. So, the server thread is not interrupting itself (there is no call to Thread.currentThread().interrupt()) BUT another thread is calling runThread.interrupt (where runThread is that server thread). Now, in my code, as that server thread dies, it closes all kinds of resources (logging each action), and also logs life cycle events (e.g. when it is all done and about to die). I was never seeing those logs. I thought that my server thread was behaving very strangely. But, in fact, because it was interrupted, its logging calls were simply being dropped due to this bug. |