summaryrefslogtreecommitdiffstats
path: root/libjava/gnu/java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/gnu/java')
-rw-r--r--libjava/gnu/java/nio/FileLockImpl.java18
-rw-r--r--libjava/gnu/java/nio/natFileLockImpl.cc3
2 files changed, 15 insertions, 6 deletions
diff --git a/libjava/gnu/java/nio/FileLockImpl.java b/libjava/gnu/java/nio/FileLockImpl.java
index f85d60ad67f..b621bd2a539 100644
--- a/libjava/gnu/java/nio/FileLockImpl.java
+++ b/libjava/gnu/java/nio/FileLockImpl.java
@@ -1,5 +1,5 @@
-/* FileChannelImpl.java --
- Copyright (C) 2002 Free Software Foundation, Inc.
+/* FileLockImpl.java --
+ Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -60,14 +60,24 @@ public class FileLockImpl extends FileLock
}
private FileDescriptor fd;
- private boolean released;
public FileLockImpl (FileDescriptor fd, FileChannel channel, long position,
long size, boolean shared)
{
super (channel, position, size, shared);
this.fd = fd;
- this.released = false;
+ }
+
+ public void finalize()
+ {
+ try
+ {
+ release();
+ }
+ catch (IOException e)
+ {
+ // Ignore this.
+ }
}
public boolean isValid ()
diff --git a/libjava/gnu/java/nio/natFileLockImpl.cc b/libjava/gnu/java/nio/natFileLockImpl.cc
index 19a3b83fde7..d3d01a12df3 100644
--- a/libjava/gnu/java/nio/natFileLockImpl.cc
+++ b/libjava/gnu/java/nio/natFileLockImpl.cc
@@ -20,6 +20,5 @@ details. */
void
gnu::java::nio::FileLockImpl::releaseImpl ()
{
- throw new ::java::io::IOException
- (JvNewStringUTF ("releaseImpl not implemented"));
+ fd->unlock(position(), size());
}
OpenPOWER on IntegriCloud