diff --git a/spring-core/src/main/java/org/springframework/core/CoroutinesUtils.java b/spring-core/src/main/java/org/springframework/core/CoroutinesUtils.java index bfb10f7992..3b69ff38e4 100644 --- a/spring-core/src/main/java/org/springframework/core/CoroutinesUtils.java +++ b/spring-core/src/main/java/org/springframework/core/CoroutinesUtils.java @@ -33,7 +33,6 @@ import kotlin.reflect.full.KClasses; import kotlin.reflect.full.KClassifiers; import kotlin.reflect.full.KTypes; import kotlin.reflect.jvm.KCallablesJvm; -import kotlin.reflect.jvm.KTypesJvm; import kotlin.reflect.jvm.ReflectJvmMapping; import kotlinx.coroutines.BuildersKt; import kotlinx.coroutines.CoroutineStart; @@ -109,7 +108,7 @@ public abstract class CoroutinesUtils { * @throws IllegalArgumentException if {@code method} is not a suspending function * @since 6.0 */ - @SuppressWarnings("deprecation") + @SuppressWarnings({"deprecation", "DataFlowIssue"}) public static Publisher invokeSuspendingFunction(CoroutineContext context, Method method, Object target, Object... args) { Assert.isTrue(KotlinDetector.isSuspendingFunction(method), "'method' must be a suspending function"); @@ -128,7 +127,7 @@ public abstract class CoroutinesUtils { if (!(parameter.isOptional() && arg == null)) { KType type = parameter.getType(); if (!(type.isMarkedNullable() && arg == null)) { - KClass kClass = KTypesJvm.getJvmErasure(type); + KClass kClass = (KClass) type.getClassifier(); if (KotlinDetector.isInlineClass(JvmClassMappingKt.getJavaClass(kClass))) { arg = KClasses.getPrimaryConstructor(kClass).call(arg); } diff --git a/spring-web/src/main/java/org/springframework/web/method/support/InvocableHandlerMethod.java b/spring-web/src/main/java/org/springframework/web/method/support/InvocableHandlerMethod.java index 918ce2226d..8bd593934a 100644 --- a/spring-web/src/main/java/org/springframework/web/method/support/InvocableHandlerMethod.java +++ b/spring-web/src/main/java/org/springframework/web/method/support/InvocableHandlerMethod.java @@ -29,7 +29,6 @@ import kotlin.reflect.KParameter; import kotlin.reflect.KType; import kotlin.reflect.full.KClasses; import kotlin.reflect.jvm.KCallablesJvm; -import kotlin.reflect.jvm.KTypesJvm; import kotlin.reflect.jvm.ReflectJvmMapping; import org.springframework.context.MessageSource; @@ -299,7 +298,7 @@ public class InvocableHandlerMethod extends HandlerMethod { private static class KotlinDelegate { @Nullable - @SuppressWarnings("deprecation") + @SuppressWarnings({"deprecation", "DataFlowIssue"}) public static Object invokeFunction(Method method, Object target, Object[] args) throws InvocationTargetException, IllegalAccessException { KFunction function = ReflectJvmMapping.getKotlinFunction(method); // For property accessors @@ -319,7 +318,7 @@ public class InvocableHandlerMethod extends HandlerMethod { if (!(parameter.isOptional() && arg == null)) { KType type = parameter.getType(); if (!(type.isMarkedNullable() && arg == null)) { - KClass kClass = KTypesJvm.getJvmErasure(type); + KClass kClass = (KClass) type.getClassifier(); if (KotlinDetector.isInlineClass(JvmClassMappingKt.getJavaClass(kClass))) { arg = KClasses.getPrimaryConstructor(kClass).call(arg); } diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/InvocableHandlerMethod.java b/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/InvocableHandlerMethod.java index de362ea27a..890d2979cb 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/InvocableHandlerMethod.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/InvocableHandlerMethod.java @@ -34,7 +34,6 @@ import kotlin.reflect.KParameter; import kotlin.reflect.KType; import kotlin.reflect.full.KClasses; import kotlin.reflect.jvm.KCallablesJvm; -import kotlin.reflect.jvm.KTypesJvm; import kotlin.reflect.jvm.ReflectJvmMapping; import reactor.core.publisher.Mono; @@ -298,7 +297,7 @@ public class InvocableHandlerMethod extends HandlerMethod { private static final String COROUTINE_CONTEXT_ATTRIBUTE = "org.springframework.web.server.CoWebFilter.context"; @Nullable - @SuppressWarnings("deprecation") + @SuppressWarnings({"deprecation", "DataFlowIssue"}) public static Object invokeFunction(Method method, Object target, Object[] args, boolean isSuspendingFunction, ServerWebExchange exchange) throws InvocationTargetException, IllegalAccessException { @@ -330,7 +329,7 @@ public class InvocableHandlerMethod extends HandlerMethod { if (!(parameter.isOptional() && arg == null)) { KType type = parameter.getType(); if (!(type.isMarkedNullable() && arg == null)) { - KClass kClass = KTypesJvm.getJvmErasure(type); + KClass kClass = (KClass) type.getClassifier(); if (KotlinDetector.isInlineClass(JvmClassMappingKt.getJavaClass(kClass))) { arg = KClasses.getPrimaryConstructor(kClass).call(arg); }