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

Fails to run with Java 17 #161

Closed
Tracked by #2982
tarekoraby opened this issue Nov 2, 2021 · 2 comments · Fixed by #210
Closed
Tracked by #2982

Fails to run with Java 17 #161

tarekoraby opened this issue Nov 2, 2021 · 2 comments · Fixed by #210

Comments

@tarekoraby
Copy link
Contributor

The starter fails to run with Java 17 (Eclipse Temuri jdk-17.0.0.35-hotspot).

To reproduce

Run command mvn install and then run java -jar app/target/app.jar

The app fails to start and the following error is generated:

"C:\Program Files\Eclipse Foundation\jdk-17.0.0.35-hotspot\bin\java.exe" -Dfile.encoding=windows-1252 -jar C:\dev\vaadin\base-starter-flow-osgi\app\target\app.jar
java.lang.NoSuchMethodException: sun.misc.Unsafe.defineAnonymousClass(java.lang.Class,[B,[Ljava.lang.Object;)
	at java.base/java.lang.Class.getMethod(Class.java:2227)
	at org.apache.felix.framework.util.SecureAction.getAccessor(SecureAction.java:1134)
	at org.apache.felix.framework.util.SecureAction.<clinit>(SecureAction.java:86)
	at org.apache.felix.framework.Felix.<clinit>(Felix.java:114)
	at org.apache.felix.framework.FrameworkFactory.newFramework(FrameworkFactory.java:30)
	at aQute.launcher.Launcher.createClassic(Launcher.java:1224)
	at aQute.launcher.Launcher.createFramework(Launcher.java:1202)
	at aQute.launcher.Launcher.activate(Launcher.java:484)
	at aQute.launcher.Launcher.launch(Launcher.java:400)
	at aQute.launcher.Launcher.run(Launcher.java:181)
	at aQute.launcher.Launcher.main(Launcher.java:157)
	at aQute.launcher.pre.EmbeddedLauncher.executeWithRunPath(EmbeddedLauncher.java:170)
	at aQute.launcher.pre.EmbeddedLauncher.findAndExecute(EmbeddedLauncher.java:119)
	at aQute.launcher.pre.EmbeddedLauncher.main(EmbeddedLauncher.java:52)
java.lang.NoSuchMethodException: sun.misc.Unsafe.defineAnonymousClass(java.lang.Class,[B,[Ljava.lang.Object;)
	at java.base/java.lang.Class.getMethod(Class.java:2227)
	at org.apache.felix.framework.util.SecureAction.getAccessor(SecureAction.java:1134)
	at org.apache.felix.framework.util.SecureAction.setAccesssible(SecureAction.java:998)
	at org.apache.felix.framework.ext.ClassPathExtenderFactory$DefaultClassLoaderExtender.<clinit>(ClassPathExtenderFactory.java:55)
	at org.apache.felix.framework.ExtensionManager.<clinit>(ExtensionManager.java:152)
	at org.apache.felix.framework.Felix.initializeFrameworkProperties(Felix.java:4881)
	at org.apache.felix.framework.Felix.<init>(Felix.java:405)
	at org.apache.felix.framework.Felix.<init>(Felix.java:355)
	at org.apache.felix.framework.FrameworkFactory.newFramework(FrameworkFactory.java:30)
	at aQute.launcher.Launcher.createClassic(Launcher.java:1224)
	at aQute.launcher.Launcher.createFramework(Launcher.java:1202)
	at aQute.launcher.Launcher.activate(Launcher.java:484)
	at aQute.launcher.Launcher.launch(Launcher.java:400)
	at aQute.launcher.Launcher.run(Launcher.java:181)
	at aQute.launcher.Launcher.main(Launcher.java:157)
	at aQute.launcher.pre.EmbeddedLauncher.executeWithRunPath(EmbeddedLauncher.java:170)
	at aQute.launcher.pre.EmbeddedLauncher.findAndExecute(EmbeddedLauncher.java:119)
	at aQute.launcher.pre.EmbeddedLauncher.main(EmbeddedLauncher.java:52)
java.lang.ExceptionInInitializerError
	at org.apache.felix.framework.URLHandlers.<clinit>(URLHandlers.java:119)
	at org.apache.felix.framework.URLHandlersActivator.start(URLHandlersActivator.java:69)
	at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:825)
	at org.apache.felix.framework.Felix$SystemBundleActivator.start(Felix.java:5173)
	at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:825)
	at org.apache.felix.framework.Felix.init(Felix.java:899)
	at org.apache.felix.framework.Felix.init(Felix.java:648)
	at aQute.launcher.Launcher.createFramework(Launcher.java:1215)
	at aQute.launcher.Launcher.activate(Launcher.java:484)
	at aQute.launcher.Launcher.launch(Launcher.java:400)
	at aQute.launcher.Launcher.run(Launcher.java:181)
	at aQute.launcher.Launcher.main(Launcher.java:157)
	at aQute.launcher.pre.EmbeddedLauncher.executeWithRunPath(EmbeddedLauncher.java:170)
	at aQute.launcher.pre.EmbeddedLauncher.findAndExecute(EmbeddedLauncher.java:119)
	at aQute.launcher.pre.EmbeddedLauncher.main(EmbeddedLauncher.java:52)
Caused by: java.lang.RuntimeException: Unable to make protected boolean java.net.URLStreamHandler.equals(java.net.URL,java.net.URL) accessible: module java.base does not "opens java.net" to unnamed module @17d99928
	at org.apache.felix.framework.URLHandlersStreamHandlerProxy.<clinit>(URLHandlersStreamHandlerProxy.java:103)
	... 15 more
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected boolean java.net.URLStreamHandler.equals(java.net.URL,java.net.URL) accessible: module java.base does not "opens java.net" to unnamed module @17d99928
	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
	at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:199)
	at java.base/java.lang.reflect.AccessibleObject.setAccessible(AccessibleObject.java:130)
	at org.apache.felix.framework.util.SecureAction.lambda$getAccessor$0(SecureAction.java:1145)
	at org.apache.felix.framework.util.SecureAction.setAccesssible(SecureAction.java:998)
	at org.apache.felix.framework.URLHandlersStreamHandlerProxy.<clinit>(URLHandlersStreamHandlerProxy.java:78)
	... 15 more
Nov 02, 2021 10:01:22 AM org.apache.aries.spifly.BaseActivator log
INFO: Registered provider com.helger.commons.equals.DefaultEqualsImplementationRegistrarSPI of service com.helger.commons.equals.IEqualsImplementationRegistrarSPI in bundle com.helger.ph-commons
Nov 02, 2021 10:01:22 AM org.apache.aries.spifly.BaseActivator log
INFO: Registered provider com.helger.commons.hashcode.DefaultHashCodeImplementationRegistrarSPI of service com.helger.commons.hashcode.IHashCodeImplementationRegistrarSPI in bundle com.helger.ph-commons
Nov 02, 2021 10:01:22 AM org.apache.aries.spifly.BaseActivator log
INFO: Registered provider com.helger.commons.serialize.convert.BasicSerializationConverterRegistrar of service com.helger.commons.serialize.convert.ISerializationConverterRegistrarSPI in bundle com.helger.ph-commons
Nov 02, 2021 10:01:22 AM org.apache.aries.spifly.BaseActivator log
INFO: Registered provider com.helger.commons.thirdparty.ThirdPartyModuleProvider_ph_commons of service com.helger.commons.thirdparty.IThirdPartyModuleProviderSPI in bundle com.helger.ph-commons
Nov 02, 2021 10:01:22 AM org.apache.aries.spifly.BaseActivator log
INFO: Registered provider com.helger.commons.typeconvert.BaseTypeConverterRegistrar of service com.helger.commons.typeconvert.ITypeConverterRegistrarSPI in bundle com.helger.ph-commons
Nov 02, 2021 10:01:22 AM org.apache.aries.spifly.BaseActivator log
INFO: Registered provider com.helger.commons.typeconvert.CharsetTypeConverterRegistrar of service com.helger.commons.typeconvert.ITypeConverterRegistrarSPI in bundle com.helger.ph-commons
Nov 02, 2021 10:01:22 AM org.apache.aries.spifly.BaseActivator log
INFO: Registered provider com.helger.commons.typeconvert.CollectionTypeConverterRegistrar of service com.helger.commons.typeconvert.ITypeConverterRegistrarSPI in bundle com.helger.ph-commons
Nov 02, 2021 10:01:22 AM org.apache.aries.spifly.BaseActivator log
INFO: Registered provider com.helger.commons.typeconvert.DateTimeTypeConverterRegistrar of service com.helger.commons.typeconvert.ITypeConverterRegistrarSPI in bundle com.helger.ph-commons
Nov 02, 2021 10:01:22 AM org.apache.aries.spifly.BaseActivator log
INFO: Registered provider com.helger.commons.typeconvert.IOTypeConverterRegistrar of service com.helger.commons.typeconvert.ITypeConverterRegistrarSPI in bundle com.helger.ph-commons
Nov 02, 2021 10:01:22 AM org.apache.aries.spifly.BaseActivator log
INFO: Registered provider com.helger.commons.typeconvert.LocaleTypeConverterRegistrar of service com.helger.commons.typeconvert.ITypeConverterRegistrarSPI in bundle com.helger.ph-commons
Nov 02, 2021 10:01:22 AM org.apache.aries.spifly.BaseActivator log
INFO: Registered provider com.helger.commons.typeconvert.MutableTypeConverterRegistrar of service com.helger.commons.typeconvert.ITypeConverterRegistrarSPI in bundle com.helger.ph-commons
Nov 02, 2021 10:01:22 AM org.apache.aries.spifly.BaseActivator log
INFO: Registered provider com.helger.commons.equals.DefaultEqualsImplementationRegistrarSPI of service com.helger.commons.equals.IEqualsImplementationRegistrarSPI in bundle com.helger.ph-commons
Nov 02, 2021 10:01:22 AM org.apache.aries.spifly.BaseActivator log
INFO: Registered provider com.helger.commons.hashcode.DefaultHashCodeImplementationRegistrarSPI of service com.helger.commons.hashcode.IHashCodeImplementationRegistrarSPI in bundle com.helger.ph-commons
Nov 02, 2021 10:01:22 AM org.apache.aries.spifly.BaseActivator log
INFO: Registered provider com.helger.commons.serialize.convert.BasicSerializationConverterRegistrar of service com.helger.commons.serialize.convert.ISerializationConverterRegistrarSPI in bundle com.helger.ph-commons
Nov 02, 2021 10:01:22 AM org.apache.aries.spifly.BaseActivator log
INFO: Registered provider com.helger.commons.thirdparty.ThirdPartyModuleProvider_ph_commons of service com.helger.commons.thirdparty.IThirdPartyModuleProviderSPI in bundle com.helger.ph-commons
Nov 02, 2021 10:01:22 AM org.apache.aries.spifly.BaseActivator log
INFO: Registered provider com.helger.commons.typeconvert.BaseTypeConverterRegistrar of service com.helger.commons.typeconvert.ITypeConverterRegistrarSPI in bundle com.helger.ph-commons
Nov 02, 2021 10:01:22 AM org.apache.aries.spifly.BaseActivator log
INFO: Registered provider com.helger.commons.typeconvert.CharsetTypeConverterRegistrar of service com.helger.commons.typeconvert.ITypeConverterRegistrarSPI in bundle com.helger.ph-commons
Nov 02, 2021 10:01:22 AM org.apache.aries.spifly.BaseActivator log
INFO: Registered provider com.helger.commons.typeconvert.CollectionTypeConverterRegistrar of service com.helger.commons.typeconvert.ITypeConverterRegistrarSPI in bundle com.helger.ph-commons
Nov 02, 2021 10:01:22 AM org.apache.aries.spifly.BaseActivator log
INFO: Registered provider com.helger.commons.typeconvert.DateTimeTypeConverterRegistrar of service com.helger.commons.typeconvert.ITypeConverterRegistrarSPI in bundle com.helger.ph-commons
Nov 02, 2021 10:01:22 AM org.apache.aries.spifly.BaseActivator log
INFO: Registered provider com.helger.commons.typeconvert.IOTypeConverterRegistrar of service com.helger.commons.typeconvert.ITypeConverterRegistrarSPI in bundle com.helger.ph-commons
Nov 02, 2021 10:01:22 AM org.apache.aries.spifly.BaseActivator log
INFO: Registered provider com.helger.commons.typeconvert.LocaleTypeConverterRegistrar of service com.helger.commons.typeconvert.ITypeConverterRegistrarSPI in bundle com.helger.ph-commons
Nov 02, 2021 10:01:22 AM org.apache.aries.spifly.BaseActivator log
INFO: Registered provider com.helger.commons.typeconvert.MutableTypeConverterRegistrar of service com.helger.commons.typeconvert.ITypeConverterRegistrarSPI in bundle com.helger.ph-commons
Nov 02, 2021 10:01:22 AM org.apache.aries.spifly.BaseActivator log
INFO: Registered provider org.eclipse.jetty.http.Http1FieldPreEncoder of service org.eclipse.jetty.http.HttpFieldPreEncoder in bundle org.apache.felix.http.jetty
Nov 02, 2021 10:01:22 AM org.apache.aries.spifly.BaseActivator log
INFO: Registered provider org.eclipse.jetty.http2.hpack.HpackFieldPreEncoder of service org.eclipse.jetty.http.HttpFieldPreEncoder in bundle org.apache.felix.http.jetty
Nov 02, 2021 10:01:22 AM org.apache.aries.spifly.BaseActivator log
INFO: Registered provider org.eclipse.jetty.http.Http1FieldPreEncoder of service org.eclipse.jetty.http.HttpFieldPreEncoder in bundle org.apache.felix.http.jetty
Nov 02, 2021 10:01:22 AM org.apache.aries.spifly.BaseActivator log
INFO: Registered provider org.eclipse.jetty.http2.hpack.HpackFieldPreEncoder of service org.eclipse.jetty.http.HttpFieldPreEncoder in bundle org.apache.felix.http.jetty
! Failed to start bundle org.apache.felix.http.jetty-4.1.4, exception activator error Weaving hook failed. from: org.apache.felix.framework.BundleWiringImpl$BundleClassLoader:transformClass#2391
org.osgi.framework.BundleException: Activator start error in bundle org.apache.felix.http.jetty [29].
	at org.apache.felix.framework.Felix.activateBundle(Felix.java:2479)
	at org.apache.felix.framework.Felix.startBundle(Felix.java:2335)
	at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:1007)
	at aQute.launcher.Launcher.start(Launcher.java:674)
	at aQute.launcher.Launcher.startBundles(Launcher.java:654)
	at aQute.launcher.Launcher.activate(Launcher.java:560)
	at aQute.launcher.Launcher.launch(Launcher.java:400)
	at aQute.launcher.Launcher.run(Launcher.java:181)
	at aQute.launcher.Launcher.main(Launcher.java:157)
	at aQute.launcher.pre.EmbeddedLauncher.executeWithRunPath(EmbeddedLauncher.java:170)
	at aQute.launcher.pre.EmbeddedLauncher.findAndExecute(EmbeddedLauncher.java:119)
	at aQute.launcher.pre.EmbeddedLauncher.main(EmbeddedLauncher.java:52)
Caused by: java.lang.ClassFormatError: Weaving hook failed.
	at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.transformClass(BundleWiringImpl.java:2391)
	at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.findClass(BundleWiringImpl.java:2069)
	at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1550)
	at org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:79)
	at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1970)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
	at org.apache.felix.http.base.internal.HttpServiceController.<init>(HttpServiceController.java:56)
	at org.apache.felix.http.base.internal.AbstractHttpActivator.doStart(AbstractHttpActivator.java:33)
	at org.apache.felix.http.jetty.internal.JettyActivator.doStart(JettyActivator.java:43)
	at org.apache.felix.http.base.internal.AbstractActivator.start(AbstractActivator.java:39)
	at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:825)
	at org.apache.felix.framework.Felix.activateBundle(Felix.java:2429)
	... 11 more
Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 61
	at org.objectweb.asm.ClassReader.<init>(ClassReader.java:189)
	at org.objectweb.asm.ClassReader.<init>(ClassReader.java:170)
	at org.objectweb.asm.ClassReader.<init>(ClassReader.java:156)
	at org.objectweb.asm.ClassReader.<init>(ClassReader.java:277)
	at org.apache.aries.spifly.dynamic.OSGiFriendlyClassWriter.getCommonSuperClass(OSGiFriendlyClassWriter.java:84)
	at org.objectweb.asm.SymbolTable.addMergedType(SymbolTable.java:1202)
	at org.objectweb.asm.Frame.merge(Frame.java:1299)
	at org.objectweb.asm.Frame.merge(Frame.java:1197)
	at org.objectweb.asm.MethodWriter.computeAllFrames(MethodWriter.java:1610)
	at org.objectweb.asm.MethodWriter.visitMaxs(MethodWriter.java:1546)
	at org.objectweb.asm.MethodVisitor.visitMaxs(MethodVisitor.java:773)
	at org.objectweb.asm.commons.LocalVariablesSorter.visitMaxs(LocalVariablesSorter.java:148)
	at org.objectweb.asm.ClassReader.readCode(ClassReader.java:2629)
	at org.objectweb.asm.ClassReader.readMethod(ClassReader.java:1481)
	at org.objectweb.asm.ClassReader.accept(ClassReader.java:711)
	at org.objectweb.asm.ClassReader.accept(ClassReader.java:394)
	at org.apache.aries.spifly.dynamic.ClientWeavingHook.weave(ClientWeavingHook.java:60)
	at org.apache.felix.framework.util.SecureAction.invokeWeavingHook(SecureAction.java:1372)
	at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.transformClass(BundleWiringImpl.java:2377)
	... 22 more
[main] INFO com.vaadin.flow.osgi.support.ServletContainerInitializerClasses - Unable to detect used OSGi framework version due to Cannot invoke "org.osgi.framework.Bundle.getVersion()" because "osgiBundle" is null
@caalador
Copy link
Contributor

caalador commented Nov 2, 2021

What I see from the exception this would seem to be a Felix issue that it doesn't work with JDK17.
I couldn't find any info on Felix and JDK17 support.
For Karaf I found the info Karaf 4.3.3 now fully supports JDK17 both at build time and runtime from September 13, 2021 which uses Felix, but nothing on actual Felix support

@mcollovati
Copy link

mcollovati commented Mar 28, 2022

Apache Felix fixed a JDK 17 related bug on version 7.0.1 (https://issues.apache.org/jira/browse/FELIX-6430)
A fast check with Apache Felix 7.0.3 and also upgrading Apache Aries SPI Fly dependencies to 1.3.4 seems to work fine.

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

Successfully merging a pull request may close this issue.

3 participants