On Wed, 2013-01-30 at 12:07 +0000, James Shaw wrote: > On 30 January 2013 11:54, Oleg Kalnichevski <[email protected]> wrote: > > On Wed, 2013-01-30 at 11:22 +0000, James Shaw wrote: > >> I'm having some trouble tracking this down, but I believe that > >> httpclient 4.2.3 is clearing the interrupt flag. > >> > >> My code looks like this: > >> > >> executorService.submit(new Runnable() { > >> @Override public void run() { > >> while (!Thread.currentThread().isInterrupted()) { > >> consume(); // calls AWS SDK which uses Apache HttpClient > >> } > >> } > >> }); > >> > >> Sometimes this loop does not terminate when calling > >> Future.cancel(true). The only piece of diagnostics I have so far is > >> this: > >> Exception 'java.lang.InterruptedException' occurred in thread > >> 'queue-consumer-reader-thread-1' at > >> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.reportInterruptAfterWait(AbstractQueuedSynchronizer.java:2017) > >> Exception 'java.lang.InterruptedException' occurred in thread > >> 'queue-consumer-reader-thread-1' at > >> org.apache.http.impl.conn.tsccm.WaitingThread.await(WaitingThread.java:164) > >> Exception 'java.lang.InterruptedException' occurred in thread > >> 'queue-consumer-reader-thread-1' at > >> org.apache.http.impl.conn.tsccm.ConnPoolByRoute.getEntryBlocking(ConnPoolByRoute.java:410) > >> Exception 'java.lang.InterruptedException' occurred in thread > >> 'queue-consumer-reader-thread-1' at > >> org.apache.http.impl.conn.tsccm.ConnPoolByRoute.getEntryBlocking(ConnPoolByRoute.java:423) > >> > >> Should I not expect the interrupt flag to be preserved? Do you have > >> any suggestions how I could isolate this bug (I'm not 100% sure if > >> it's in HttpClient or AWS client right now)? > >> > >> Thanks > >> > > > > I am not aware of any place in HttpClient where it might meddle with the > > interrupt flag. > Is there anywhere that InterruptException is caught and either not > rethrown, or the flag is not explicitly set again? That would be > sufficient. >
There are two places where InterruptedException is re-thrown as InterruptedIOException. I am not aware of any place where InterruptedException can be caught and not re-thrown. Oleg --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
