Possible bugs with Java file system and non latin characters in file names
Martijn Verburg
martijnverburg at gmail.com
Sun Oct 30 04:56:59 PDT 2011
Hi all,
I ran across some legacy I/O code that was causing some issues for a client.
I tried to see if this was already reported in the bugs database, but
I got a NPE from the Glassfish server trying to log in (the irony ;p),
so I thought l should report it here. Under Java 6u29 and Java 7u1
the following sample code (which simply creates a FileReader and
prints out each file in a directory) behaves oddly when faced with a
file in the directory of the name Bérletmozgás-201110.txt.
---------SSCE----------
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
public class NonLatinFilenameBugExample
{
private static final String DIR = "/temp/";
//on Windows: private static final String inbox = "c:/temp/";
// Could pass in the path, but hard coded it for SSCE
public static void main(String[] args)
{
File dir = new File(DIR);
File[] files = dir.listFiles();
for (int i = 0; i < files.length; i++)
{
try
{
new FileReader(files[i].getAbsolutePath());
System.out.println(files[i].getAbsolutePath());
}
catch (FileNotFoundException e)
{
// Dump the stack trace as proof
e.printStackTrace();
}
}
}
}
* It works fine under Windows listing the file
* It produces a FileNotFoundException under Linux and Mac OS X Lion
when the new FileReader(files[i].getAbsolutePath()); call is made
* Files of any type/extension/name are not discovered by the
dir.listFiles(); call under cygwin
Does this sound familiar to anyone at all?
Cheers,
Martijn
More information about the nio-dev
mailing list