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. From-SVN: r99011
This commit is contained in:
parent
2c80f01549
commit
b61ae8b261
5 changed files with 80 additions and 43 deletions
|
@ -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) */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue