summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--harmony-tests/src/test/java/org/apache/harmony/tests/java/nio/channels/FileChannelTest.java6
-rw-r--r--harmony-tests/src/test/java/org/apache/harmony/tests/java/nio/channels/FileLockTest.java10
-rw-r--r--luni/src/main/java/java/nio/channels/FileLock.java13
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.