Skip to content

java.security.PrivilegedActionException: java.lang.NoSuchMethodException: sun.misc.Unsafe.defineClass #23

Description

@bdklahn

I'm trying to find some program which will convert all the ACSN2 SBGN-ML map files to GraphML, for ultimate loading into NetworkX.
With structured, standards-compliant, MLs, it should be pretty simple . . .
Nope.

java -jar ~/.m2/repository/fr/eisbm/ySBGN/1.0/ySBGN-1.0.jar 

** (java:21946): WARNING **: 18:00:01.109: AT-SPI: Could not obtain desktop path or name


** (java:21946): WARNING **: 18:00:01.639: atk-bridge: get_device_events_reply: unknown signature

** (java:21946): WARNING **: 18:00:01.639: atk-bridge: get_device_events_reply: unknown signature

** (java:21946): WARNING **: 18:00:01.639: atk-bridge: GetRegisteredEvents returned message with unknown signature

** (java:21946): WARNING **: 18:00:01.665: AT-SPI: Could not obtain desktop path or name


** (java:21946): WARNING **: 18:00:01.732: AT-SPI: Could not obtain desktop path or name



** (java:21946): WARNING **: 18:00:01.732: AT-SPI: Could not obtain desktop path or name

Convert button clicked, launch script
Apr 12, 2022 6:01:02 PM com.sun.xml.bind.v2.runtime.reflect.opt.Injector <clinit>
SEVERE: null
java.security.PrivilegedActionException: java.lang.NoSuchMethodException: sun.misc.Unsafe.defineClass(java.lang.String,[B,int,int,java.lang.ClassLoader,java.security.ProtectionDomain)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:573)
        at com.sun.xml.bind.v2.runtime.reflect.opt.Injector.<clinit>(Injector.java:197)
        at com.sun.xml.bind.v2.runtime.reflect.opt.AccessorInjector.prepare(AccessorInjector.java:81)
        at com.sun.xml.bind.v2.runtime.reflect.opt.OptimizedAccessorFactory.get(OptimizedAccessorFactory.java:179)
        at com.sun.xml.bind.v2.runtime.reflect.Accessor$FieldReflection.optimize(Accessor.java:285)
        at com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.<init>(SingleElementNodeProperty.java:94)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
        at com.sun.xml.bind.v2.runtime.property.PropertyFactory.create(PropertyFactory.java:128)
        at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.<init>(ClassBeanInfoImpl.java:181)
        at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getOrCreate(JAXBContextImpl.java:514)
        at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.<init>(ClassBeanInfoImpl.java:168)
        at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getOrCreate(JAXBContextImpl.java:514)
        at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:331)
        at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:139)
        at com.sun.xml.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1156)
        at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:165)
        at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:289)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:186)
        at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:146)
        at javax.xml.bind.ContextFinder.find(ContextFinder.java:350)
        at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:446)
        at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:409)
        at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:313)
        at fr.eisbm.GRAPHML2SBGNML.Utils.readFromFile(Utils.java:37)
        at fr.eisbm.GRAPHML2SBGNML.SBGNML2GraphML.parseSBGNFile(SBGNML2GraphML.java:34)
        at fr.eisbm.GRAPHML2SBGNML.SBGNML2GraphML.convert(SBGNML2GraphML.java:23)
        at fr.eisbm.GRAPHML2SBGNML.App$2.call(App.java:204)
        at fr.eisbm.GRAPHML2SBGNML.App$2.call(App.java:196)
        at javafx.concurrent.Task$TaskCallable.call(Task.java:1425)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.NoSuchMethodException: sun.misc.Unsafe.defineClass(java.lang.String,[B,int,int,java.lang.ClassLoader,java.security.ProtectionDomain)
        at java.base/java.lang.Class.getMethod(Class.java:2227)
        at com.sun.xml.bind.v2.runtime.reflect.opt.Injector$3.run(Injector.java:201)
        at com.sun.xml.bind.v2.runtime.reflect.opt.Injector$3.run(Injector.java:197)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:569)
        ... 38 more
> java --version
openjdk 17.0.2 2022-01-18
OpenJDK Runtime Environment (build 17.0.2+8-suse-4.1-x8664)
OpenJDK 64-Bit Server VM (build 17.0.2+8-suse-4.1-x8664, mixed mode)

It also fails with openjdk 11, etc., etc.

I'm running on OpenSUSE Tumbleweed, with openjfx 11.0.14-2.1 installed.

The jar in the repo wouldn't work, so I built with maven.
That createsySBGN-1.0.jar, despite the master branch I'm working on being 4 commits newer than . . .
commit 1c46b27 (tag: 1.1.2)

(maybe the pom hasn't been fully updated with a newer version number, or the tags aren't meant to match the jar version?)

It wouldn't build (or run??? . . . I can't recall . . . so many issues whenever I try to get any Java program to work right), with out this:

diff --git a/pom.xml b/pom.xml
index 5f7d553..c7e4ee8 100755
--- a/pom.xml
+++ b/pom.xml
@@ -116,6 +116,18 @@
             <mainClass>HelloFX</mainClass>
         </configuration>
     </plugin>
+            <plugin>
+                <groupId>org.jvnet.jaxb2.maven2</groupId>
+                <artifactId>maven-jaxb2-plugin</artifactId>
+                <version>0.14.0</version>
+                <dependencies>
+                    <dependency>
+                        <groupId>org.glassfish.jaxb</groupId>
+                        <artifactId>jaxb-runtime</artifactId>
+                        <version>2.3.1</version>
+                   </dependency>
+               </dependencies>
+            </plugin>
        </plugins>
   </build>
   <version>1.0</version>

(which I found on the internet, as a fix for the error I was getting before)

Any idea how to get this to work? I've even gone so far as to try a Docker image with an old Java 8 in it. Of course I got the usual "DISPLAY not found", because it is an X11 application. I haven't gone so far as to fire up, say, and old Ubuntu VM with older stuff in it.

Does this really need to be a GUI application? It could easily be a CLI, with one; maybe two CL arguments.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions