Toolkit.getDefaultToolkit() hangs after com.apple.eio.FileManager call
Hendrik Schreiber
hs at tagtraum.com
Sun Jan 6 03:26:31 PST 2013
Hi,
just because I spent some "quality" time with this:
Calling Toolkit.getDefaultToolkit() after a call to FileManager.findFolder(FileManager.kUserDomain, 0x61737570) will cause Toolkit.getDefaultToolkit() to hang.
So, if you intend to use com.apple.eio.FileManager, make sure to call Toolkit.getDefaultToolkit() *before* you call the FileManager.
-hendrik
PS: Bug is filed at Oracle.
java version "1.7.0_10"
Java(TM) SE Runtime Environment (build 1.7.0_10-b18)
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode)
import com.apple.eio.FileManager;
import java.awt.*;
import java.io.FileNotFoundException;
public class ToolkitHang {
private static final int kApplicationSupportFolder = 0x61737570;// asup
public static void main(String[] args) throws FileNotFoundException {
final String appSupportFolder = FileManager.findFolder(FileManager.kUserDomain, kApplicationSupportFolder);
System.out.println("App Support Folder: " + appSupportFolder);
Toolkit.getDefaultToolkit();
System.out.println("Is never reached.");
}
}
Where it hangs:
"main at 1" prio=5 tid=0x1 nid=NA runnable
java.lang.Thread.State: RUNNABLE
at java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:-1)
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1939)
- locked <0x99> (a java.util.Vector)
- locked <0x9a> (a java.util.Vector)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1864)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1825)
at java.lang.Runtime.load0(Runtime.java:792)
- locked <0x54> (a java.lang.Runtime)
at java.lang.System.load(System.java:1059)
at java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:-1)
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1939)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1864)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1846)
at java.lang.Runtime.loadLibrary0(Runtime.java:845)
at java.lang.System.loadLibrary(System.java:1084)
at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:67)
at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:47)
at java.security.AccessController.doPrivileged(AccessController.java:-1)
at java.awt.Toolkit.loadLibraries(Toolkit.java:1648)
at java.awt.Toolkit.<clinit>(Toolkit.java:1670)
More information about the macosx-port-dev
mailing list