From f525d7a75ffa9e02d094828e91b2c8af49272e61 Mon Sep 17 00:00:00 2001 From: Andrew Overholt Date: Tue, 3 May 2005 22:38:17 +0000 Subject: [PATCH] re PR libgcj/21372 (FileChannel.tryLock() return value incorrect) 2005-05-03 Andrew Overholt PR libgcj/21372: * gnu/java/nio/channels/FileChannelImpl.java: Return null if lock could not be acquired. * java/nio/channels/FileLock.java (toString): Re-implement to be in line with other implementations. From-SVN: r99188 --- libjava/ChangeLog | 8 ++++++++ libjava/gnu/java/nio/channels/FileChannelImpl.java | 6 ++++-- libjava/java/nio/channels/FileLock.java | 12 +++++++++++- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/libjava/ChangeLog b/libjava/ChangeLog index dc02544..17a07fd 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,11 @@ +2005-05-03 Andrew Overholt + + PR libgcj/21372: + * gnu/java/nio/channels/FileChannelImpl.java: Return null if lock + could not be acquired. + * java/nio/channels/FileLock.java (toString): Re-implement to be + in line with other implementations. + 2005-05-03 Tom Tromey * java/lang/VMSecurityManager.java (currentClassLoader): Use diff --git a/libjava/gnu/java/nio/channels/FileChannelImpl.java b/libjava/gnu/java/nio/channels/FileChannelImpl.java index aaa4c26..6893d81 100644 --- a/libjava/gnu/java/nio/channels/FileChannelImpl.java +++ b/libjava/gnu/java/nio/channels/FileChannelImpl.java @@ -437,9 +437,11 @@ public final class FileChannelImpl extends FileChannel try { begin(); - lock(position, size, shared, false); + boolean lockable = lock(position, size, shared, false); completed = true; - return new FileLockImpl(this, position, size, shared); + return (lockable + ? new FileLockImpl(this, position, size, shared) + : null); } finally { diff --git a/libjava/java/nio/channels/FileLock.java b/libjava/java/nio/channels/FileLock.java index 629f5ef..a4af080 100644 --- a/libjava/java/nio/channels/FileLock.java +++ b/libjava/java/nio/channels/FileLock.java @@ -132,6 +132,16 @@ public abstract class FileLock */ public final String toString() { - return "file-lock:pos=" + position + "size=" + size; + String toReturn = getClass().getName() + + "[" + position + ":" + size; + if (shared) + toReturn += " shared"; + else + toReturn += " exclusive"; + if (isValid()) + toReturn += " valid]"; + else + toReturn += " invalid]"; + return toReturn; } } -- 2.7.4