--- old/src/share/classes/sun/nio/ch/FileChannelImpl.java Wed Apr 1 17:51:21 2009 +++ new/src/share/classes/sun/nio/ch/FileChannelImpl.java Wed Apr 1 17:51:21 2009 @@ -128,9 +128,10 @@ throw new NonReadableChannelException(); synchronized (positionLock) { int n = 0; - int ti = threads.add(); + int ti = -1; try { begin(); + ti = threads.add(); if (!isOpen()) return 0; do { @@ -151,9 +152,10 @@ throw new NonReadableChannelException(); synchronized (positionLock) { long n = 0; - int ti = threads.add(); + int ti = -1; try { begin(); + ti = threads.add(); if (!isOpen()) return 0; do { @@ -183,9 +185,10 @@ throw new NonWritableChannelException(); synchronized (positionLock) { int n = 0; - int ti = threads.add(); + int ti = -1; try { begin(); + ti = threads.add(); if (!isOpen()) return 0; do { @@ -206,9 +209,10 @@ throw new NonWritableChannelException(); synchronized (positionLock) { long n = 0; - int ti = threads.add(); + int ti = -1; try { begin(); + ti = threads.add(); if (!isOpen()) return 0; do { @@ -239,9 +243,10 @@ ensureOpen(); synchronized (positionLock) { long p = -1; - int ti = threads.add(); + int ti = -1; try { begin(); + ti = threads.add(); if (!isOpen()) return 0; do { @@ -262,9 +267,10 @@ throw new IllegalArgumentException(); synchronized (positionLock) { long p = -1; - int ti = threads.add(); + int ti = -1; try { begin(); + ti = threads.add(); if (!isOpen()) return null; do { @@ -283,9 +289,10 @@ ensureOpen(); synchronized (positionLock) { long s = -1; - int ti = threads.add(); + int ti = -1; try { begin(); + ti = threads.add(); if (!isOpen()) return -1; do { @@ -311,9 +318,10 @@ synchronized (positionLock) { int rv = -1; long p = -1; - int ti = threads.add(); + int ti = -1; try { begin(); + ti = threads.add(); if (!isOpen()) return null; @@ -350,9 +358,10 @@ public void force(boolean metaData) throws IOException { ensureOpen(); int rv = -1; - int ti = threads.add(); + int ti = -1; try { begin(); + ti = threads.add(); if (!isOpen()) return; do { @@ -406,9 +415,10 @@ return IOStatus.UNSUPPORTED; long n = -1; - int ti = threads.add(); + int ti = -1; try { begin(); + ti = threads.add(); if (!isOpen()) return -1; do { @@ -612,9 +622,10 @@ throw new NonReadableChannelException(); ensureOpen(); int n = 0; - int ti = threads.add(); + int ti = -1; try { begin(); + ti = threads.add(); if (!isOpen()) return -1; do { @@ -637,9 +648,10 @@ throw new NonWritableChannelException(); ensureOpen(); int n = 0; - int ti = threads.add(); + int ti = -1; try { begin(); + ti = threads.add(); if (!isOpen()) return -1; do { @@ -731,9 +743,10 @@ throw new NonReadableChannelException(); long addr = -1; - int ti = threads.add(); + int ti = -1; try { begin(); + ti = threads.add(); if (!isOpen()) return null; if (size() < position + size) { // Extend file size @@ -900,9 +913,10 @@ FileLockTable flt = fileLockTable(); flt.add(fli); boolean i = true; - int ti = threads.add(); + int ti = -1; try { begin(); + ti = threads.add(); if (!isOpen()) return null; int result = nd.lock(fd, true, position, size, shared); --- old/test/java/nio/channels/AsyncCloseAndInterrupt.java Wed Apr 1 17:51:24 2009 +++ new/test/java/nio/channels/AsyncCloseAndInterrupt.java Wed Apr 1 17:51:23 2009 @@ -22,7 +22,7 @@ */ /* @test - * @bug 4460583 4470470 4840199 6419424 6710579 6596323 + * @bug 4460583 4470470 4840199 6419424 6710579 6596323 6824135 * @summary Comprehensive test of asynchronous closing and interruption * @author Mark Reinhold */