diff options
author | mkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-04-29 18:47:42 +0000 |
---|---|---|
committer | mkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-04-29 18:47:42 +0000 |
commit | a809cb64cf76259d2d0b87e14332a227c34da5ea (patch) | |
tree | a633006bbff08f9d9c68b140ddd9e2656e06ec70 /libjava/gnu | |
parent | f53ce661177e4d4d44f53bd236857c26e5de43a3 (diff) | |
download | gcc-a809cb64cf76259d2d0b87e14332a227c34da5ea.tar.gz |
2005-04-29 Dalibor Topic <robilad@kaffe.org>
* java/nio/channels/FileChannelImpl.java
(FileChannelImpl(String, int)): Removed.
(FileChannelImpl(File, int)): Added. Check if opened file is a
directory.
* java/io/FileInputStream.java(FileInputStream): Fixed javadocs.
Call FileChannelImpl(File, int).
* java/io/FileOutputStream.java (FileInputStream): Call
FileChannelImpl(File, int).
* java/io/RandomAccessFile.java (RandomAccessFile):
Call FileChannelImpl(File, int). Switched constructors around.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@99011 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/gnu')
-rw-r--r-- | libjava/gnu/java/nio/channels/FileChannelImpl.java | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/libjava/gnu/java/nio/channels/FileChannelImpl.java b/libjava/gnu/java/nio/channels/FileChannelImpl.java index 9d978c923f7..aaa4c260864 100644 --- a/libjava/gnu/java/nio/channels/FileChannelImpl.java +++ b/libjava/gnu/java/nio/channels/FileChannelImpl.java @@ -41,6 +41,7 @@ package gnu.java.nio.channels; import gnu.classpath.Configuration; import gnu.java.nio.FileLockImpl; +import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.nio.ByteBuffer; @@ -102,10 +103,27 @@ public final class FileChannelImpl extends FileChannel } /* Open a file. MODE is a combination of the above mode flags. */ - public FileChannelImpl (String path, int mode) throws FileNotFoundException + public FileChannelImpl (File file, int mode) throws FileNotFoundException { + final String path = file.getPath(); fd = open (path, mode); this.mode = mode; + + // First open the file and then check if it is a a directory + // to avoid race condition. + if (file.isDirectory()) + { + try + { + close(); + } + catch (IOException e) + { + /* ignore it */ + } + + throw new FileNotFoundException(path + " is a directory"); + } } /* Used by init() (native code) */ |