Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
bdklahn opened this issue Apr 12, 2022 · 0 comments

Comments

@bdklahn
Copy link

bdklahn commented Apr 12, 2022

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant