<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">I agree with Robert.<div><br></div><div>According to&nbsp;<a href="http://download.oracle.com/docs/cd/E17476_01/javase/1.4.2/docs/api/java/io/InterruptedIOException.html">http://download.oracle.com/docs/cd/E17476_01/javase/1.4.2/docs/api/java/io/InterruptedIOException.html</a> :</div><div>"An
 <code>InterruptedIOException</code> is thrown to indicate that an
 input or output transfer has been terminated because the thread
 performing it was interrupted."</div><div><br></div><div>This means that the threads interrupted state should indeed be restored after catching such an event.</div><div><br></div><div>I can't emphasize enough how stupid I consider the existence of this issue - but obviously all code should be checked for this. I'm especially annoyed since IOUtils.closeQuietly() is broken, too, because it ignores this...</div><div><br></div><div>I wouldn't go down the road of "it's just Solaris" since this is documented behavior that we obviously just weren't aware of.</div><div><br></div><div>Cheers,</div><div>Joern.</div><div><br></div><div><div><div>On 08.07.2010, at 10:41, Robert Elliot wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div><blockquote type="cite">Given that the issue is Solaris-specific and preventable with the<br></blockquote><blockquote type="cite">-XX:-UseVMInterruptibleIO option, and given that the programming style<br></blockquote><blockquote type="cite">for thread synchronization using interrupt() is in my opinion quite<br></blockquote><blockquote type="cite">lame, I am tempted to ignore this issue. However, it is also true that<br></blockquote><blockquote type="cite">some classes belonging to the JDK, i.e. PrintStream, invoke<br></blockquote><blockquote type="cite">Thread.interrupt() after catching an InterruptedIOException. It<br></blockquote><blockquote type="cite">follows that calling Thread.interrupt() looks like the sanctioned<br></blockquote><blockquote type="cite">coding style.<br></blockquote><br>My understanding from reading Java Concurrency in Practice (pp 92-94 and 138-144) is that it is more than sanctioned coding style - it's vital to correct working of the interrupted thread model, and a well behaved consumer of InterruptedException must restore the interrupted status unless it is going to propagate the exception or is sure that the thread will terminate immediately after catching it.<br>_______________________________________________<br>Logback-user mailing list<br><a href="mailto:Logback-user@qos.ch">Logback-user@qos.ch</a><br>http://qos.ch/mailman/listinfo/logback-user<br></div></blockquote></div><br></div></body></html>