You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After upgrading to Spring 5.1 RC1 my application started failing with following exception -
Caused by: java.lang.UnsupportedOperationException
at org.springframework.asm.ClassVisitor.visitNestHostExperimental(ClassVisitor.java:156) ~[spring-core-5.1.0.RC1.jar:5.1.0.RC1]
at org.springframework.asm.ClassReader.accept(ClassReader.java:541) ~[spring-core-5.1.0.RC1.jar:5.1.0.RC1]
at org.springframework.asm.ClassReader.accept(ClassReader.java:391) ~[spring-core-5.1.0.RC1.jar:5.1.0.RC1]
at org.springframework.core.type.classreading.SimpleMetadataReader.<init>(SimpleMetadataReader.java:65) ~[spring-core-5.1.0.RC1.jar:5.1.0.RC1]
at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:103) ~[spring-core-5.1.0.RC1.jar:5.1.0.RC1]
at org.springframework.core.type.classreading.CachingMetadataReaderFactory.getMetadataReader(CachingMetadataReaderFactory.java:123) ~[spring-core-5.1.0.RC1.jar:5.1.0.RC1]
Turned out, this is happening when spring tries to process classes which have inner class themselves. e.g. in.workingtheory.Application class has an inner class FailureGeneration. Application will not start unless I remove this inner class altogether or remove class in.workingtheory.Application from class path scanning.
This is only reproducible on JDK 11 and Spring 5.1 RC1 but works fine on JDK 10.
Sample project for reproducing this issue is attached.
I assume this only happens when compiling with the default target (i.e. JDK 11 bytecode)? Does it work when compiling with -target 1.8 or even -target 10 and deploying to JDK 11?
This seems to be a consequence of our ASM 6.2 upgrade which only has experimental support for the JDK 11 bytecode level and doesn't activate it by default. We can get around it by declaring our visitors as ASM7_EXPERIMENTAL (which we'll probably do for Spring Framework 5.1 RC2) but ideally we'd get a proper ASM 7 upgrade in time for 5.1's general availability.
I've switched our SpringAsmInfo.ASM_VERSION to ASM7_EXPERIMENTAL for the time being. This should hopefully allow for parsing all currently known JDK 11 bytecode variants.
Kedar Joshi opened SPR-17096 and commented
After upgrading to Spring 5.1 RC1 my application started failing with following exception -
Turned out, this is happening when spring tries to process classes which have inner class themselves. e.g. in.workingtheory.Application class has an inner class FailureGeneration. Application will not start unless I remove this inner class altogether or remove class in.workingtheory.Application from class path scanning.
This is only reproducible on JDK 11 and Spring 5.1 RC1 but works fine on JDK 10.
Sample project for reproducing this issue is attached.
+Environment+
Oracle JDK 11 Build 23 (64 Bit)
Spring framework 5.1 RC1
Affects: 5.1 RC1
Attachments:
Issue Links:
Referenced from: commits e82efbc
The text was updated successfully, but these errors were encountered: