Invoke KCallablesJvm.setAccessible only when required
Closes-32536
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user