Invoke KCallablesJvm.setAccessible only when required
Closes-32536
This commit is contained in:
parent
b28153e1d7
commit
048e4f0aa2
|
|
@ -130,9 +130,11 @@ public abstract class CoroutinesUtils {
|
|||
KType type = parameter.getType();
|
||||
if (!(type.isMarkedNullable() && arg == null) && type.getClassifier() instanceof KClass<?> kClass
|
||||
&& KotlinDetector.isInlineClass(JvmClassMappingKt.getJavaClass(kClass))) {
|
||||
KFunction<?> valueClassConstructor = KClasses.getPrimaryConstructor(kClass);
|
||||
KCallablesJvm.setAccessible(valueClassConstructor, true);
|
||||
arg = valueClassConstructor.call(arg);
|
||||
KFunction<?> constructor = KClasses.getPrimaryConstructor(kClass);
|
||||
if (!KCallablesJvm.isAccessible(constructor)) {
|
||||
KCallablesJvm.setAccessible(constructor, true);
|
||||
}
|
||||
arg = constructor.call(arg);
|
||||
}
|
||||
argMap.put(parameter, arg);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -319,9 +319,11 @@ public class InvocableHandlerMethod extends HandlerMethod {
|
|||
KType type = parameter.getType();
|
||||
if (!(type.isMarkedNullable() && arg == null) && type.getClassifier() instanceof KClass<?> kClass
|
||||
&& KotlinDetector.isInlineClass(JvmClassMappingKt.getJavaClass(kClass))) {
|
||||
KFunction<?> valueClassConstructor = KClasses.getPrimaryConstructor(kClass);
|
||||
KCallablesJvm.setAccessible(valueClassConstructor, true);
|
||||
arg = valueClassConstructor.call(arg);
|
||||
KFunction<?> constructor = KClasses.getPrimaryConstructor(kClass);
|
||||
if (!KCallablesJvm.isAccessible(constructor)) {
|
||||
KCallablesJvm.setAccessible(constructor, true);
|
||||
}
|
||||
arg = constructor.call(arg);
|
||||
}
|
||||
argMap.put(parameter, arg);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -330,9 +330,11 @@ public class InvocableHandlerMethod extends HandlerMethod {
|
|||
KType type = parameter.getType();
|
||||
if (!(type.isMarkedNullable() && arg == null) && type.getClassifier() instanceof KClass<?> kClass
|
||||
&& KotlinDetector.isInlineClass(JvmClassMappingKt.getJavaClass(kClass))) {
|
||||
KFunction<?> valueClassConstructor = KClasses.getPrimaryConstructor(kClass);
|
||||
KCallablesJvm.setAccessible(valueClassConstructor, true);
|
||||
arg = valueClassConstructor.call(arg);
|
||||
KFunction<?> constructor = KClasses.getPrimaryConstructor(kClass);
|
||||
if (!KCallablesJvm.isAccessible(constructor)) {
|
||||
KCallablesJvm.setAccessible(constructor, true);
|
||||
}
|
||||
arg = constructor.call(arg);
|
||||
}
|
||||
argMap.put(parameter, arg);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue