6979009: (fc) FileChannel.read() fails to throw ClosedByInterruptException
forax at univ-mlv.fr
Sun Nov 7 07:24:44 PST 2010
Le 07/11/2010 13:14, Alan Bateman a écrit :
> I've been talking to Dag Wanvik (Derby/Java DB project) about some
> issues that they are seeing when threads doing I/O with a FileChannel
> are interrupted. They periodically see the channel being "silently
> closed" and also spurious ClosedByInterruptExceptions thrown by other
> threads doing I/O that are not interrupted. As it turns out there is a
> small rat's nest that has always been there. The following changes fix
> these issues so that ClosedByInterruptException is consistently
> thrown, and only by the thread that is interrupted. We may need to
> follow this up with a spec clarification for the case that a thread is
> interrupted at just around the time that an I/O completes.
There is another bug, closeLock is not final in
Also in AbstractSelector and in AbstractInterruptibleChannel, this code:
can be changed to:
Thread current = Thread.currentThread();
to avoid to call Threa.currentThread twice.
About the patch, I'm not sure to fully understand it.
More information about the nio-dev