diff options
3 files changed, 27 insertions, 2 deletions
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/java/nio/channels/FileChannelTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/java/nio/channels/FileChannelTest.java index 990badc..ccf5a14 100644 --- a/harmony-tests/src/test/java/org/apache/harmony/tests/java/nio/channels/FileChannelTest.java +++ b/harmony-tests/src/test/java/org/apache/harmony/tests/java/nio/channels/FileChannelTest.java @@ -786,6 +786,7 @@ public class FileChannelTest extends TestCase { // shared lock, but it works on Windows & Linux. assertTrue(fileLock.isShared()); assertSame(readOnlyFileChannel, fileLock.channel()); + assertSame(readOnlyFileChannel, fileLock.acquiredBy()); assertEquals(POSITION, fileLock.position()); assertEquals(SIZE, fileLock.size()); } @@ -800,6 +801,7 @@ public class FileChannelTest extends TestCase { assertTrue(fileLock.isValid()); assertFalse(fileLock.isShared()); assertSame(writeOnlyFileChannel, fileLock.channel()); + assertSame(writeOnlyFileChannel, fileLock.acquiredBy()); assertEquals(POSITION, fileLock.position()); assertEquals(SIZE, fileLock.size()); } @@ -816,6 +818,7 @@ public class FileChannelTest extends TestCase { assertEquals(POSITION, fileLock.position()); assertEquals(SIZE, fileLock.size()); assertSame(readOnlyFileChannel, fileLock.channel()); + assertSame(readOnlyFileChannel, fileLock.acquiredBy()); } /** @@ -994,6 +997,7 @@ public class FileChannelTest extends TestCase { // shared lock, but it works on Windows & Linux. assertTrue(fileLock.isShared()); assertSame(readOnlyFileChannel, fileLock.channel()); + assertSame(readOnlyFileChannel, fileLock.acquiredBy()); assertEquals(POSITION, fileLock.position()); assertEquals(SIZE, fileLock.size()); } @@ -1008,6 +1012,7 @@ public class FileChannelTest extends TestCase { assertTrue(fileLock.isValid()); assertFalse(fileLock.isShared()); assertSame(writeOnlyFileChannel, fileLock.channel()); + assertSame(writeOnlyFileChannel, fileLock.acquiredBy()); assertEquals(POSITION, fileLock.position()); assertEquals(SIZE, fileLock.size()); } @@ -1024,6 +1029,7 @@ public class FileChannelTest extends TestCase { assertEquals(POSITION, fileLock.position()); assertEquals(SIZE, fileLock.size()); assertSame(readOnlyFileChannel, fileLock.channel()); + assertSame(readOnlyFileChannel, fileLock.acquiredBy()); } /** diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/java/nio/channels/FileLockTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/java/nio/channels/FileLockTest.java index 7e3b671..c4d372b 100644 --- a/harmony-tests/src/test/java/org/apache/harmony/tests/java/nio/channels/FileLockTest.java +++ b/harmony-tests/src/test/java/org/apache/harmony/tests/java/nio/channels/FileLockTest.java @@ -75,6 +75,7 @@ public class FileLockTest extends TestCase { public void test_Constructor_Ljava_nio_channels_FileChannelJJZ() { FileLock fileLock1 = new MockFileLock(null, 0, 0, false); assertNull(fileLock1.channel()); + assertNull(fileLock1.acquiredBy()); try { new MockFileLock(readWriteChannel, -1, 0, false); @@ -107,6 +108,15 @@ public class FileLockTest extends TestCase { } /** + * @tests java.nio.channels.FileLock#acquiredBy() + */ + public void test_acquiredBy() { + assertSame(readWriteChannel, mockLock.acquiredBy()); + FileLock lock = new MockFileLock(null, 0, 10, true); + assertNull(lock.acquiredBy()); + } + + /** * @tests java.nio.channels.FileLock#position() */ public void test_position() { diff --git a/luni/src/main/java/java/nio/channels/FileLock.java b/luni/src/main/java/java/nio/channels/FileLock.java index 360f826..037537c 100644 --- a/luni/src/main/java/java/nio/channels/FileLock.java +++ b/luni/src/main/java/java/nio/channels/FileLock.java @@ -108,14 +108,23 @@ public abstract class FileLock implements AutoCloseable { /** * Returns the lock's {@link FileChannel}. - * - * @return the channel. */ public final FileChannel channel() { return channel; } /** + * Returns the {@link Channel} that holds this lock. + * + * @since 1.7 + * @hide Until ready for an API update + */ + // TODO: unhiding, add to channel(): This method has been superseded by {@link #acquiredBy()}. + public Channel acquiredBy() { + return channel; + } + + /** * Returns the lock's starting position in the file. * * @return the lock position. |