Closed
Description
Sébastien Deleuze opened SPR-16992 and commented
When running Spring applications as native images via GraalVM, Class
is not Serializable
which trigger the following error as described here:
Exception in thread "main" java.lang.reflect.InvocationTargetException
at java.lang.Throwable.<init>(Throwable.java:310)
at java.lang.Exception.<init>(Exception.java:102)
at java.lang.ReflectiveOperationException.<init>(ReflectiveOperationException.java:89)
at java.lang.reflect.InvocationTargetException.<init>(InvocationTargetException.java:72)
at com.oracle.svm.reflect.proxies.Proxy_1_Converter_main.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.oracle.svm.core.JavaMainWrapper.run(JavaMainWrapper.java:173)
Caused by: java.lang.IllegalArgumentException: Unsupported Type class: java.lang.Class
at java.lang.Throwable.<init>(Throwable.java:265)
at java.lang.Exception.<init>(Exception.java:66)
at java.lang.RuntimeException.<init>(RuntimeException.java:62)
at java.lang.IllegalArgumentException.<init>(IllegalArgumentException.java:52)
at org.springframework.core.SerializableTypeWrapper.forTypeProvider(SerializableTypeWrapper.java:161)
at org.springframework.core.SerializableTypeWrapper.forGenericInterfaces(SerializableTypeWrapper.java:102)
at org.springframework.core.ResolvableType.getInterfaces(ResolvableType.java:476)
at org.springframework.core.ResolvableType.as(ResolvableType.java:436)
at org.springframework.core.convert.support.GenericConversionService.getRequiredTypeInfo(GenericConversionService.java:292)
at org.springframework.core.convert.support.GenericConversionService.addConverterFactory(GenericConversionService.java:111)
at org.springframework.core.convert.support.DefaultConversionService.addScalarConverters(DefaultConversionService.java:135)
at org.springframework.core.convert.support.DefaultConversionService.addDefaultConverters(DefaultConversionService.java:88)
at org.springframework.core.convert.support.DefaultConversionService.<init>(DefaultConversionService.java:52)
at Converter.<init>(Converter.java:6)
at Converter.main(Converter.java:9)
... 3 more
SerializableTypeWrapper
should support platforms where Class
is not Serializable
.
Issue Links:
- Initial GraalVM native images (Substrate VM) support [SPR-16991] #21529 Initial GraalVM native images (Substrate VM) support ("is depended on by")
- DefaultParameterNameDiscoverer should automatically adapt to Graal constraints [SPR-17005] #21543 DefaultParameterNameDiscoverer should automatically adapt to Graal constraints
- Detect GraalVM with system property in SerializableTypeWrapper [SPR-17136] #21673 Detect GraalVM with system property in SerializableTypeWrapper