8028208: (aio) Assertion in clearPendingIoMap when closing at around time file lock is acquired immediately (win)

Reviewed-by: chegar
This commit is contained in:
Alan Bateman 2013-11-12 17:37:45 +00:00
parent cd2f2cbb84
commit f5d34bdef1
2 changed files with 4 additions and 5 deletions

View File

@ -228,6 +228,7 @@ public class WindowsAsynchronousFileChannelImpl
@Override
public void run() {
long overlapped = 0L;
boolean pending = false;
try {
begin();
@ -241,6 +242,7 @@ public class WindowsAsynchronousFileChannelImpl
overlapped);
if (n == IOStatus.UNAVAILABLE) {
// I/O is pending
pending = true;
return;
}
// acquired lock immediately
@ -250,10 +252,10 @@ public class WindowsAsynchronousFileChannelImpl
} catch (Throwable x) {
// lock failed or channel closed
removeFromFileLockTable(fli);
if (overlapped != 0L)
ioCache.remove(overlapped);
result.setFailure(toIOException(x));
} finally {
if (!pending && overlapped != 0L)
ioCache.remove(overlapped);
end();
}

View File

@ -204,9 +204,6 @@ java/net/DatagramSocket/SendDatagramToBadAddress.java macosx-all
# 6963118
java/nio/channels/Selector/Wakeup.java windows-all
# 7052549
java/nio/channels/FileChannel/ReleaseOnCloseDeadlock.java windows-all
# 7133499, 7133497
java/nio/channels/AsyncCloseAndInterrupt.java macosx-all
java/nio/channels/AsynchronousFileChannel/Lock.java macosx-all