jdk9 on the mac, crash on load of jogl-all-natives-macosx-universal.jar, macos 10.12.2

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

jdk9 on the mac, crash on load of jogl-all-natives-macosx-universal.jar, macos 10.12.2

Douglas Lyon
Hi All,
I have been kicking the tires on jogl for macos 10.12.2 and jdk9. The problem
appears to be a single jar file:
jogl-all-natives-macosx-universal.jar

This contains a jnilib that will crash when loaded into the jvm under jdk9.
For example:
  public static void main(String[] args) {

System.load("/Users/lyon/current/java/j4p/jars/j3d/foo/natives/macosx-universal/libnativewindow_awt.jnilib");
    }
Emits:
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x0000000117a0a795, pid=65766, tid=6915
#
# JRE version: Java(TM) SE Runtime Environment (8.0_51-b16) (build 1.8.0_51-b16)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.51-b03 mixed mode bsd-amd64 compressed oops)
# Problematic frame:
# C  [libawt_lwawt.dylib+0x44795]  JNI_OnLoad+0x91

Did I do something wrong?
Thanks!
 - Doug
Reply | Threaded
Open this post in threaded view
|

Re: jdk9 on the mac, crash on load of jogl-all-natives-macosx-universal.jar, macos 10.12.2

gouessej
Administrator
Hi

Do you reproduce this crash with Java 1.8? Have you tried my suggestion?
http://forum.jogamp.org/Jogl-Jogamp-on-Java-9-tp4038012p4038321.html
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: jdk9 on the mac, crash on load of jogl-all-natives-macosx-universal.jar, macos 10.12.2

Douglas Lyon
jdk8 works fine...this is a jdk9 problem, as far as I know.
Reply | Threaded
Open this post in threaded view
|

Re: jdk9 on the mac, crash on load of jogl-all-natives-macosx-universal.jar, macos 10.12.2

Douglas Lyon
In reply to this post by gouessej
Here is another example;
public class BugJdk9 {
    public static void main(String[] args) {
        String root="/Users/lyon/current/java/j3d/ij3d/foo/natives/macosx-universal/";
        String libs[]={"libgluegen-rt.jnilib",
                "libjoal.jnilib",
                "libjocl.jnilib",
                "libjogl_desktop.jnilib",
                "libjogl_mobile.jnilib",
                "libnativewindow_awt.jnilib",
                "libnativewindow_macosx.jnilib",
                "libnewt.jnilib",
                "libopenal.dylib"};

        System.out.println("test begins");
        for (int i=0; i < libs.length;i++) {
            System.out.println("trying:"+libs[i]);
            System.load(root + libs[i]);
            System.out.println("loaded:"+libs[i]);
        }
    }
}
jdk8 has the problem too;
/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/bin/java -Dfile.encoding=UTF-8 -classpath /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/deploy.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/dnsns.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/jaccess.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/jfxrt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/localedata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/nashorn.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/sunec.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/zipfs.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/javaws.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/jfxswt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/management-agent.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/plugin.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/ant-javafx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/dt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/javafx-mx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/jconsole.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/packager.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/sa-jdi.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/tools.jar:/Users/lyon/current/java/j4p/java3dBug/out/production/java3dBug BugJdk9
test begins
trying:libgluegen-rt.jnilib
loaded:libgluegen-rt.jnilib
trying:libjoal.jnilib
loaded:libjoal.jnilib
trying:libjocl.jnilib
Exception in thread "main" java.lang.NoClassDefFoundError: com/jogamp/opencl/llb/impl/CLMemObjectDestructorCallback
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1824)
        at java.lang.Runtime.load0(Runtime.java:809)
        at java.lang.System.load(System.java:1086)
        at BugJdk9.main(BugJdk9.java:20)
Caused by: java.lang.ClassNotFoundException: com.jogamp.opencl.llb.impl.CLMemObjectDestructorCallback
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 6 more

Process finished with exit code 1

Am I doing something dumb?

Thanks!
 - Doug

Reply | Threaded
Open this post in threaded view
|

Re: jdk9 on the mac, crash on load of jogl-all-natives-macosx-universal.jar, macos 10.12.2

Douglas Lyon
In reply to this post by Douglas Lyon
Here is more information about where the crash occurs;
public class BugJdk9 {
    public static void main(String[] args) {
        String root="/Users/lyon/current/java/j3d/ij3d/foo/natives/macosx-universal/";
        String libs[]={
                "libgluegen-rt.jnilib",
                "libjoal.jnilib",
                "libjogl_desktop.jnilib",
                "libjogl_mobile.jnilib",
                "libnewt.jnilib",
                "libopenal.dylib",
                "libjocl.jnilib",
                "libnativewindow_macosx.jnilib",
                "libnativewindow_awt.jnilib"};

        System.out.println("test begins");
        for (int i=0; i < libs.length;i++) {
            System.out.println("trying:"+libs[i]);
            System.load(root + libs[i]);
            System.out.println("loaded:"+libs[i]);
        }
    }
}
/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/bin/java -Dfile.encoding=UTF-8 -classpath /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/deploy.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/dnsns.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/jaccess.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/jfxrt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/localedata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/nashorn.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/sunec.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/zipfs.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/javaws.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/jfxswt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/management-agent.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/plugin.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/ant-javafx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/dt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/javafx-mx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/jconsole.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/packager.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/sa-jdi.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/tools.jar:/Users/lyon/current/java/j4p/java3dBug/out/production/java3dBug:/Users/lyon/current/java/j4p/java3dBug/jogl1.5.2/gluegen-rt.jar:/Users/lyon/current/java/j4p/java3dBug/jogl1.5.2/j3dcore.jar:/Users/lyon/current/java/j4p/java3dBug/jogl1.5.2/j3dutils.jar:/Users/lyon/current/java/j4p/java3dBug/jogl1.5.2/jogl.jar:/Users/lyon/current/java/j4p/java3dBug/jogl1.5.2/vecmath.jar BugJdk9 –illegal-access=permit
test begins
trying:libgluegen-rt.jnilib
loaded:libgluegen-rt.jnilib
trying:libjoal.jnilib
loaded:libjoal.jnilib
trying:libjogl_desktop.jnilib
loaded:libjogl_desktop.jnilib
trying:libjogl_mobile.jnilib
loaded:libjogl_mobile.jnilib
trying:libnewt.jnilib
loaded:libnewt.jnilib
trying:libopenal.dylib
loaded:libopenal.dylib
trying:libjocl.jnilib
Exception in thread "main" java.lang.NoClassDefFoundError: com/jogamp/opencl/llb/impl/CLMemObjectDestructorCallback
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1824)
        at java.lang.Runtime.load0(Runtime.java:809)
        at java.lang.System.load(System.java:1086)
        at BugJdk9.main(BugJdk9.java:21)
Caused by: java.lang.ClassNotFoundException: com.jogamp.opencl.llb.impl.CLMemObjectDestructorCallback
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 6 more

Process finished with exit code 1

Thus, it is the last two libraries:
"libnativewindow_macosx.jnilib",
                "libnativewindow_awt.jnilib"
where things go south...
Reply | Threaded
Open this post in threaded view
|

Re: jdk9 on the mac, crash on load of jogl-all-natives-macosx-universal.jar, macos 10.12.2

gouessej
Administrator
You use JOGL 1 (used in Java3D 1.5.2 and earlier) according to your classpath, there is no "jogl.jar" in JOGL 2. I remind you that we only maintain JOGL 2 (used in Java3D 1.6.0 and 1.7.0). I clearly stated in my tutorial that Java3D 1.5 is obsolete. Please ensure that your system is clean to avoid any conflict. I advise you to use the JogAmp fat JAR jogamp-fat.jar to make things simple.
Julien Gouesse | Personal blog | Website