[ https://issues.apache.org/jira/browse/ARIES-2080?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17634129#comment-17634129 ]
Jan Bartel edited comment on ARIES-2080 at 11/15/22 3:31 AM: ------------------------------------------------------------- It not only fails for records, it also fails for any {{{}enums{}}}, which more recent versions of the jvm are generating as `{{{}final{}}}` and therefore `{{{}sealed{}}}`. We're using spifly 1.3.5 with asm 9.3, but the stacktrace we see for parsing an enum generated with jdk17 is as follows: {quote}java.lang.UnsupportedOperationException: PermittedSubclasses requires ASM9 at org.objectweb.asm.ClassVisitor.visitPermittedSubclass(ClassVisitor.java:265) at org.objectweb.asm.ClassReader.accept(ClassReader.java:706) at org.objectweb.asm.ClassReader.accept(ClassReader.java:424) 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) 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:520) at org.eclipse.jetty.http.MimeTypes.lambda$static$0(MimeTypes.java:211) at org.eclipse.jetty.util.Index$Builder.withAll(Index.java:357) at org.eclipse.jetty.http.MimeTypes.<clinit>(MimeTypes.java:207) at org.eclipse.jetty.ee9.nested.ContextHandler.doStart(ContextHandler.java:629) {quote} was (Author: janbartel): It not only fails for records, it also fails for any {{{}enums{}}}, which more recent versions of the jvm are generating as `{{{}final{}}}` and therefore `{{{}sealed{}}}`. > TCCLSetterVisitor fails visitation of classes containing records > ---------------------------------------------------------------- > > Key: ARIES-2080 > URL: https://issues.apache.org/jira/browse/ARIES-2080 > Project: Aries > Issue Type: Bug > Components: SPI Fly > Affects Versions: spifly-1.3.5 > Reporter: Bjørn C Seime > Priority: Major > Attachments: stacktrace-aries-spifly-asm8.txt > > > {{TCCLSetterVisitor}} class overrides {{ClassVisitor}} passing API version > {{Opcodes.ASM7}} as argument to its super class's constructor. The effect is > that {{TCCLSetterVisitor}} fails whenever it visits byte code requiring ASM > API version >7 - even on ASM 9.3. This results in the weaving hook failing > during class loading for classes using records from JDK16. > {noformat} > [2022-07-07 13:22:05.080] WARNING : container stderr Caused by: > java.lang.UnsupportedOperationException: Records requires ASM8 > [2022-07-07 13:22:05.080] WARNING : container stderr at > com.yahoo.vespa.spifly.repackaged.asm.ClassVisitor.visit(ClassVisitor.java:111) > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)