ClassFormatError beim Aktualisieren der Wechselkurse

Hallo zusammen,

habe gerade festgestellt, dass auf einem meiner die Wechselkurse der EZB nicht mehr aktualisiert werden und ich auch im Log einen entsprechenden Eintrag gefunden habe:

Anbei der Stacktrace:

Tue Oct 15 06:57:40 CEST 2024
Während "Wechselkurse von Europäische Zentralbank aktualisieren" ist ein interner Fehler aufgetreten.

java.lang.ClassFormatError: Unexpected error from weaving hook.
	at org.eclipse.osgi.internal.weaving.WeavingHookConfigurator.processClass(WeavingHookConfigurator.java:86)
	at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.processClass(ClasspathManager.java:735)
	at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.defineClass(ClasspathManager.java:706)
	at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findClassImpl(ClasspathManager.java:639)
	at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(ClasspathManager.java:607)
	at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(ClasspathManager.java:587)
	at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:566)
	at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:335)
	at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:397)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:500)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:416)
	at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:168)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:528)
	at name.abuchen.portfolio.money.impl.ECBExchangeRateProvider.update(ECBExchangeRateProvider.java:145)
	at name.abuchen.portfolio.ui.addons.StartupAddon$UpdateExchangeRatesJob.updateOnline(StartupAddon.java:115)
	at name.abuchen.portfolio.ui.addons.StartupAddon$UpdateExchangeRatesJob.run(StartupAddon.java:72)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 67
	at org.objectweb.asm.ClassReader.<init>(ClassReader.java:200)
	at org.objectweb.asm.ClassReader.<init>(ClassReader.java:180)
	at org.objectweb.asm.ClassReader.<init>(ClassReader.java:166)
	at org.objectweb.asm.ClassReader.<init>(ClassReader.java:288)
	at org.apache.aries.spifly.dynamic.OSGiFriendlyClassWriter.getCommonSuperClass(OSGiFriendlyClassWriter.java:84)
	at org.objectweb.asm.SymbolTable.addMergedType(SymbolTable.java:1264)
	at org.objectweb.asm.Frame.merge(Frame.java:1311)
	at org.objectweb.asm.Frame.merge(Frame.java:1224)
	at org.objectweb.asm.MethodWriter.computeAllFrames(MethodWriter.java:1612)
	at org.objectweb.asm.MethodWriter.visitMaxs(MethodWriter.java:1548)
	at org.objectweb.asm.MethodVisitor.visitMaxs(MethodVisitor.java:786)
	at org.objectweb.asm.commons.LocalVariablesSorter.visitMaxs(LocalVariablesSorter.java:147)
	at org.objectweb.asm.tree.MethodNode.accept(MethodNode.java:767)
	at org.objectweb.asm.commons.JSRInlinerAdapter.visitEnd(JSRInlinerAdapter.java:159)
	at org.objectweb.asm.ClassReader.readMethod(ClassReader.java:1519)
	at org.objectweb.asm.ClassReader.accept(ClassReader.java:745)
	at org.objectweb.asm.ClassReader.accept(ClassReader.java:425)
	at org.apache.aries.spifly.dynamic.ClientWeavingHook.weave(ClientWeavingHook.java:60)
	at org.eclipse.osgi.internal.weaving.WovenClassImpl.call(WovenClassImpl.java:187)
	at org.eclipse.osgi.internal.weaving.WovenClassImpl.call(WovenClassImpl.java:1)
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHookPrivileged(ServiceRegistry.java:1357)
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHooksPrivileged(ServiceRegistry.java:1330)
	at org.eclipse.osgi.internal.weaving.WovenClassImpl.callHooks(WovenClassImpl.java:249)
	at org.eclipse.osgi.internal.weaving.WeavingHookConfigurator.processClass(WeavingHookConfigurator.java:80)
	... 16 more

Interessanterweise funktioniert alles problemlos auf dem Notebook das quasi identisch aufgsetzt ist (Arch Linux beides mal).

Hat jemand eine Idee was das Problem ist? Danke vorab schon aml

Welche Java Version verwendest Du?

Aktuell verwendet PP Java17. Das sollte - zumindest auf macOS und Windows - auch miteingepackt sein.

Hier scheint mir das schon auf Java21 zu laufen (zu wollen).

Bei mir startet es gar nicht mehr :frowning:

!MESSAGE Während "Wechselkurse von Europäische Zentralbank aktualisieren" ist ein interner Fehler aufgetreten.
!STACK 0
java.lang.IllegalStateException: Job manager has been shut down.
        at org.eclipse.core.internal.jobs.JobManager.scheduleInternal(JobManager.java:1407)
        at org.eclipse.core.internal.jobs.JobManager.lambda$5(JobManager.java:1397)
        at org.eclipse.core.internal.jobs.JobManager.withWriteLock(JobManager.java:547)
        at org.eclipse.core.internal.jobs.JobManager.schedule(JobManager.java:1396)
        at org.eclipse.core.internal.jobs.InternalJob.schedule(InternalJob.java:396)
        at org.eclipse.core.runtime.jobs.Job.schedule(Job.java:684)
        at name.abuchen.portfolio.ui.addons.StartupAddon$UpdateExchangeRatesJob.run(StartupAddon.java:88)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)

openjdk 23 2024-09-17
OpenJDK Runtime Environment (build 23+37)
OpenJDK 64-Bit Server VM (build 23+37, mixed mode, sharing)

Hat jemand eine Idee?

Edit 1: ich sehe gerade dass es mir kürzlich ein JAVA Update installiert hat, vermutlich ist das mit die Ursache.

[2024-10-13T21:15:01+0200] [ALPM] upgraded jre-openjdk (22.0.2.u9-1 -> 23.u37-1)

Edit2: richtig vermutet, nach einem Downgrade startet es wieder:

openjdk 22.0.2 2024-07-16
OpenJDK Runtime Environment (build 22.0.2+9)
OpenJDK 64-Bit Server VM (build 22.0.2+9, mixed mode, sharing)

Gruss
Vandroiy

1 Like

JDK 23 habe ich noch nicht ausprobiert, die nächste Version nutzt Java 21 (weil es die Long Term Support Version ist).

1 Like

Hatte es inzwischen auch gesehen, dass es mit java23 auf dem einen PC lief (warum auch immer) - nach umstellen auf java21 läuft es wieder.

Mit Java21 läuft es auf dem anderen PC schon länger und ohne Probleme

Danke für die schnelle Antwort und HIlfe!