Affects: \


Affects:spring-core-6.0.12.jar:6.0.12 I use a simple enum like

import java.util.function.Function;
import java.math.BigDecimal;
public enum EchoMessage {
    normal(BigDecimal::toString),
    plain(BigDecimal::toPlainString),
    fixed(_-> "hhhh"); // Unnamed Variables and Patterns 
    public final Function<BigDecimal, String> toMsg;
    EchoMessage(Function<BigDecimal, String> toMsg){
        this.toMsg = toMsg;
    }
}

// and a controller like:


@GetMapping(value = "/echo-message")
    public List<String> getEchoMessages( ){
        return Arrays.stream( EchoMessage.values() ).map( e->e.toMsg.apply(new BigDecimal("54136.5412"))).collect(Collectors.toList());
    }

exception happen: Caused by: java.lang.ClassFormatError: Illegal field name "" in class com/kbnotebooks/annotation/creator/service/echo/EchoMessage at java.base/java.lang.ClassLoader.defineClass1(Native Method) ~[na:na] at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1027) ~[na:na] at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) ~[na:na] at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862) ~[na:na] at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760) ~[na:na] at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681) ~[na:na] at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639) ~[na:na] at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[na:na] at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) ~[na:na] at java.base/java.lang.Class.getDeclaredMethods0(Native Method) ~[na:na] at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3578) ~[na:na] at java.base/java.lang.Class.getDeclaredMethods(Class.java:2676) ~[na:na] at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:465) ~[spring-core-6.0.12.jar:6.0.12]

when not use Unnamed Variables and Patterns, exception not happen

Comment From: mdeinum

This is a, unfortunate, bug in the JDK as reported here. The fix is backported to Java 21.0.1 (so the next fix release).

Comment From: billschen

This is a, unfortunate, bug in the JDK as reported here. The fix is backported to Java 21.0.1 (so the next fix release).

ok,thank you,Sorry,I use javac with out -g option and none ClassFormatError error.so I think is ReflectionUtils bug.