Merge branch '6.1.x'
This commit is contained in:
@@ -332,7 +332,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))) {
|
||||
arg = KClasses.getPrimaryConstructor(kClass).call(arg);
|
||||
KFunction<?> constructor = KClasses.getPrimaryConstructor(kClass);
|
||||
if (!KCallablesJvm.isAccessible(constructor)) {
|
||||
KCallablesJvm.setAccessible(constructor, true);
|
||||
}
|
||||
arg = constructor.call(arg);
|
||||
}
|
||||
argMap.put(parameter, arg);
|
||||
}
|
||||
|
||||
@@ -222,6 +222,14 @@ class InvocableHandlerMethodKotlinTests {
|
||||
assertHandlerResultValue(result, "null")
|
||||
}
|
||||
|
||||
@Test
|
||||
fun valueClassWithPrivateConstructor() {
|
||||
this.resolvers.add(stubResolver(1L, Long::class.java))
|
||||
val method = ValueClassController::valueClassWithPrivateConstructor.javaMethod!!
|
||||
val result = invoke(ValueClassController(), method, 1L)
|
||||
assertHandlerResultValue(result, "1")
|
||||
}
|
||||
|
||||
@Test
|
||||
fun propertyAccessor() {
|
||||
this.resolvers.add(stubResolver(null, String::class.java))
|
||||
@@ -368,6 +376,8 @@ class InvocableHandlerMethodKotlinTests {
|
||||
fun valueClassWithNullable(limit: LongValueClass?) =
|
||||
"${limit?.value}"
|
||||
|
||||
fun valueClassWithPrivateConstructor(limit: ValueClassWithPrivateConstructor) =
|
||||
"${limit.value}"
|
||||
}
|
||||
|
||||
class PropertyAccessorController {
|
||||
@@ -416,5 +426,12 @@ class InvocableHandlerMethodKotlinTests {
|
||||
}
|
||||
}
|
||||
|
||||
@JvmInline
|
||||
value class ValueClassWithPrivateConstructor private constructor(val value: Long) {
|
||||
companion object {
|
||||
fun from(value: Long) = ValueClassWithPrivateConstructor(value)
|
||||
}
|
||||
}
|
||||
|
||||
class CustomException(message: String) : Throwable(message)
|
||||
}
|
||||
Reference in New Issue
Block a user