A bug in filesystem bootstrap (unix/ linux) prevents
Dawid Weiss
dawid.weiss at gmail.com
Wed Jul 4 12:43:52 UTC 2012
Hi folks.
Run the following with -Dfile.encoding=UTF-16:
public class TestBlah {
public static void main(String []) throws Exception {
TimeZone.getDefault();
}
}
This on linux (and any unixish system I think) will result in:
java.lang.ExceptionInInitializerError
at java.nio.file.FileSystems.getDefault(FileSystems.java:176)
at sun.util.calendar.ZoneInfoFile$1.run(ZoneInfoFile.java:482)
at sun.util.calendar.ZoneInfoFile$1.run(ZoneInfoFile.java:477)
...
There is an encoding-sensitive part calling getBytes on the initial
path (and this screws it up):
// package-private
UnixFileSystem(UnixFileSystemProvider provider, String dir) {
this.provider = provider;
this.defaultDirectory = UnixPath.normalizeAndCheck(dir).getBytes();
if (this.defaultDirectory[0] != '/') {
throw new RuntimeException("default directory must be absolute");
}
Filed a bug for this but don't have the ID yet.
Dawid
More information about the core-libs-dev
mailing list