tboegi / GpsMaster

https://wiki.openstreetmap.org/wiki/GpsMaster
GNU General Public License v2.0
48 stars 7 forks source link

Java Virtual Machine Launcher #25

Closed HikeAndMap closed 1 year ago

HikeAndMap commented 3 years ago

MessageBox_1: Error: A JNI error has occurred, please check your installation and try again MessageBox_2: A Java Exception has occured

java -version java version "1.8.0_301" Java(TM) SE Runtime Environment (build 1.8.0_301-b09) Java HotSpot(TM) 64-Bit Server VM (build 25.301-b09, mixed mode)


using this installation for JOSM for many years without any problems

tboegi commented 3 years ago

Thanks for the report Just to make sure: You are using Java 8 (==1.8) You are the first one to raise this issue - we generate binaries for Java 11 and upwards.

Is there a chance for you to use Java 11 instead ?

rfuegen commented 3 years ago

please start GpsMaster in a console window:

java -jar GpsMaster_xxxx.jar

and post the resulting stacktrace here.

HikeAndMap commented 3 years ago

Sorry I didn't update this post..

I started with GpsMaster_0.64.00-rc0 then went backwards with GpsMaster_0.63.38.JDK11-and-higher until I found GpsMaster_0.63.31 which doesn't raise this problem.

So probably I shouldn't tried the release candidate ..

but I have a question, java 11?

when I go to https://java.com/en/download/windows_manual.jsp Java Downloads for Windows Recommended Version 8 Update 301 That's what I see there. No 11 I can see. I have the latest according to that website.

as for the stack trace - that reveals indeed I need a newer version: Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.UnsupportedClassVersionError: org/gpsmaster/GpsMaster has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

    Very weird I only see Java 8 as latest

This website claims there is no JRE for 11: https://askinglot.com/where-is-the-jre-for-java-11

So I guess that's the problem. The current release is being developed against a JRE which doesn't exist.. So only if you install the developers environment it'll work - it seems. Anyway thanks - obviously I can install the JDR

tboegi commented 3 years ago

Probably other search engines have better luck. Today there are 2 (at least) jdk versions/distributions.

For the Oracle distributions, this may help: https://www.oracle.com/java/technologies/java-se-glance.html

Then there is OpenJDK: https://en.wikipedia.org/wiki/OpenJDK https://jdk.java.net/

Even the OpenJDK is today maintained by Oracle, as far as I understand.

And another thing: We call many versions "rc" - they are on Github The idea is, that people test those, before they go to http://www.gpsmaster.org/download/ But this testing of rc and feedback doesn't happen, so reading your comment, I think that I make a new release the next days, and call it a release.

Please tell us, if you still want a Java 8 version. As this causes some extra work for me.

HikeAndMap commented 3 years ago

No if openJDK works I'm good with that..

Please add a notification in the "exception" hinting to openJDK .. in case someone else stumbles upon the same issue as I did.

Add:

I now have this installed: java -version java version "17" 2021-09-14 LTS Java(TM) SE Runtime Environment (build 17+35-LTS-2724) Java HotSpot(TM) 64-Bit Server VM (build 17+35-LTS-2724, mixed mode, sharing)

The reason for that version is, that on this website: https://www.oracle.com/java/technologies/java-se-glance.html it says:"Java SE 17 is the latest release of Java SE Platform. Oracle strongly recommends that all Java SE users upgrade to this release."

So I did.. but..

the result is: java -jar GpsMaster_0.64.00-rc0.jar Sep 16, 2021 4:50:48 PM com.sun.xml.bind.v2.runtime.reflect.opt.Injector 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.(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:115) at com.sun.xml.bind.v2.runtime.reflect.Accessor$GetterSetterReflection.optimize(Accessor.java:402) at com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.(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.(ClassBeanInfoImpl.java:181) at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getOrCreate(JAXBContextImpl.java:514) at com.sun.xml.bind.v2.runtime.JAXBContextImpl.(JAXBContextImpl.java:331) at com.sun.xml.bind.v2.runtime.JAXBContextImpl.(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 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:297) at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:286) at javax.xml.bind.ContextFinder.find(ContextFinder.java:409) at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:721) at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:662) at org.gpsmaster.GpsMaster.loadConfig(GpsMaster.java:3470) at org.gpsmaster.GpsMaster.initialize(GpsMaster.java:400) at org.gpsmaster.GpsMaster.(GpsMaster.java:351) at org.gpsmaster.GpsMaster$1.run(GpsMaster.java:336) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:771) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:741) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90) 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) ... 43 more

java.lang.NullPointerException: Cannot invoke "java.lang.reflect.Method.invoke(Object, Object[])" because "com.sun.xml.bind.v2.runtime.reflect.opt.Injector.defineClass" is null at com.sun.xml.bind.v2.runtime.reflect.opt.Injector.inject(Injector.java:311) at com.sun.xml.bind.v2.runtime.reflect.opt.Injector.inject(Injector.java:97) at com.sun.xml.bind.v2.runtime.reflect.opt.AccessorInjector.prepare(AccessorInjector.java:87) at com.sun.xml.bind.v2.runtime.reflect.opt.OptimizedAccessorFactory.get(OptimizedAccessorFactory.java:115) at com.sun.xml.bind.v2.runtime.reflect.Accessor$GetterSetterReflection.optimize(Accessor.java:402) at com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.(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.(ClassBeanInfoImpl.java:181) at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getOrCreate(JAXBContextImpl.java:514) at com.sun.xml.bind.v2.runtime.JAXBContextImpl.(JAXBContextImpl.java:331) at com.sun.xml.bind.v2.runtime.JAXBContextImpl.(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 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:297) at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:286) at javax.xml.bind.ContextFinder.find(ContextFinder.java:409) at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:721) at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:662) at org.gpsmaster.GpsMaster.loadConfig(GpsMaster.java:3470) at org.gpsmaster.GpsMaster.initialize(GpsMaster.java:400) at org.gpsmaster.GpsMaster.(GpsMaster.java:351) at org.gpsmaster.GpsMaster$1.run(GpsMaster.java:336) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:771) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:741) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

tboegi commented 3 years ago

It seems as if the old promise "write once, run everywhere" is not valid here. So Java 17 does not execute all Java 7/8 code. I don't know, in which Java version the exception that you posted was introduced, that is out of our control. I know that Java 13 gives a warning, and works. Java 17 does not work. I am not sure about 14, 15, 16.

https://www.oracle.com/java/technologies/javase/jdk13-archive-downloads.html

HikeAndMap commented 3 years ago

yup - tried them all ..

and you can use them all parallel next to each other on the PC I discovered..

So I just set it to use the latest version of 11 while keeping 8 for JOSM and 16 & 17 so with 17 I have the latest supported and with 16 I have the latest supported stable>

Think with 8, 11, 16, 17 I should be covered for most stuff then ..

Anyway got it to work finally thanks very much for all the support! Really appreciate it and learned how to deal with Java deployments :)

JimmyS83 commented 1 year ago

openjdk version "17.0.5" 2022-10-18 OpenJDK Runtime Environment OpenLogic-OpenJDK (build 17.0.5+8-adhoc..jdk17u) OpenJDK 64-Bit Server VM OpenLogic-OpenJDK (build 17.0.5+8-adhoc..jdk17u, mixed mode, sharing)

Confirming with Java17 _GpsMaster0.63.38.JDK11-and-higher and _GpsMaster0.64.00-rc0.jar does not work.

With Java17 _GpsMaster0.63.35.JDK7-8 works.

8:53:55 DOP. 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:115)
        at com.sun.xml.bind.v2.runtime.reflect.Accessor$GetterSetterReflection.optimize(Accessor.java:402)
        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.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 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:297)
        at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:286)
        at javax.xml.bind.ContextFinder.find(ContextFinder.java:409)
        at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:721)
        at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:662)
        at org.gpsmaster.GpsMaster.loadConfig(GpsMaster.java:3476)
        at org.gpsmaster.GpsMaster.initialize(GpsMaster.java:406)
        at org.gpsmaster.GpsMaster.<init>(GpsMaster.java:357)
        at org.gpsmaster.GpsMaster$1.run(GpsMaster.java:343)
        at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
        at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:771)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
        at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:741)
        at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
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)
        ... 43 more

java.lang.NullPointerException: Cannot invoke "java.lang.reflect.Method.invoke(Object, Object[])" because "com.sun.xml.bind.v2.runtime.reflect.opt.Injector.defineClass" is null
        at com.sun.xml.bind.v2.runtime.reflect.opt.Injector.inject(Injector.java:311)
        at com.sun.xml.bind.v2.runtime.reflect.opt.Injector.inject(Injector.java:97)
        at com.sun.xml.bind.v2.runtime.reflect.opt.AccessorInjector.prepare(AccessorInjector.java:87)
        at com.sun.xml.bind.v2.runtime.reflect.opt.OptimizedAccessorFactory.get(OptimizedAccessorFactory.java:115)
        at com.sun.xml.bind.v2.runtime.reflect.Accessor$GetterSetterReflection.optimize(Accessor.java:402)
        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.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 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:297)
        at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:286)
        at javax.xml.bind.ContextFinder.find(ContextFinder.java:409)
        at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:721)
        at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:662)
        at org.gpsmaster.GpsMaster.loadConfig(GpsMaster.java:3476)
        at org.gpsmaster.GpsMaster.initialize(GpsMaster.java:406)
        at org.gpsmaster.GpsMaster.<init>(GpsMaster.java:357)
        at org.gpsmaster.GpsMaster$1.run(GpsMaster.java:343)
        at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
        at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:771)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
        at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:741)
        at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

After some lookaround I can confirm, that all Java7/8 code isnt compatible fully with 15/16/17 versions etc. for example:

I had a similar error message when migrating my projects and libraries from java 16 to java 17. I was using the -illegal-access=permit option and it was removed in java 17.

For legacy purposes, I have java8 installed, for normal use Java17. Both Java8+Java17 works with GpsMaster_0.63.35.JDK7-8, but new versions of GPSMaster are not available for legacy java. Would be really good to make app available also for Java17, for now, I will not install Java16 as additional to Java8+17, which is already more than I would like to have :)

From stacktrace I think it could be also Jaxb related, as seen on some Maven plugin discussions - https://github.com/mojohaus/jaxb2-maven-plugin/issues/182

Is there any chance to get this security error fixed, in some time in future?

tboegi commented 1 year ago

@duiveldoder :Thanks for the report. Just to make clear, that I understand the issue correctly: GpsMaster_0.63.35.JDK7-8 works with both Java17 ?

JimmyS83 commented 1 year ago

I am not sure if that was reply to my post, but I have just one Java17, OpenJDK one, and that one doesnt throw any error and runs GpsMaster_0.63.35.JDK7-8 fine (i didnt do any complex test cases).

tboegi commented 1 year ago

I just added GpsMaster_0.64.02.JDK7-8.jar Do you have time to test and report here ?

JimmyS83 commented 1 year ago

Loads fine on both my Javas, Java8 & Java17

tboegi commented 1 year ago

Thanks for testing. Could we close this issue ?

JimmyS83 commented 1 year ago

I first thought that original issue was that release, marked as JDK11+ didnt work on JDK17 (at least openJDK). But as I checked now, it was about JDK8 release, and then got a bit bigger scope :) At least for me, I dont have issue with JDK8 release. So in this sense I think yes (although I cant speak for others :)

But would be good to have some checking also on JDK11+ release, on the actual JDK's around, thats just my opinion..

tboegi commented 1 year ago

JDK 11 works here for me. (and I think even 12, 13) I am somewhat surprised that the "JDK7-8.jar" version runs under JDK 17. Probably the naming of our JARs could be improved ? Suggestions welcome

JimmyS83 commented 1 year ago

Well, I dont have patience to test every JDK, and I believe you that JDK11 works.. That + at the end is little bit absolute, at least from JDK17 there are some issues... Optimally, I would name that release last JDK, which support it, or add some description.txt or smtg with compatible versions. Java has a few milestones, j8u202, 11, propably 17, which kinda breaked some backward compatibility.

And agree, for me it was also kinda surprising that "j8" version works with j17, but j11+ version not :)

Anyway, I think lot of people keep old j8 for legacy stuff, so there is no issue as long as that version is possible to download, or is released, what could confuse them as me is, when they are using latest java, and have unexpected issues with 11+ (latest) version.

P.S.: I didnt test with other version of j17, I think there are other free options apart from OpenJDK.

HikeAndMap commented 1 year ago

Thanks for testing. Could we close this issue ?

yes - I'm good with the result of the discussion here