Skip to content

Commit cf23637

Browse files
authored
Merge pull request #654 from k163377/temp-fix-#572
Change MKPE.parameter property to transient.
2 parents 5ecac2e + d291b43 commit cf23637

File tree

3 files changed

+24
-1
lines changed

3 files changed

+24
-1
lines changed

pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,7 @@
223223
-->
224224
<exclude>com.fasterxml.jackson.module.kotlin.ReflectionCache</exclude>
225225
<exclude>com.fasterxml.jackson.module.kotlin.TypesKt</exclude>
226+
<exclude>com.fasterxml.jackson.module.kotlin.MissingKotlinParameterException</exclude>
226227
</excludes>
227228
</parameter>
228229
</configuration>

src/main/kotlin/com/fasterxml/jackson/module/kotlin/Exceptions.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ import kotlin.reflect.KParameter
1818
),
1919
DeprecationLevel.WARNING
2020
)
21-
class MissingKotlinParameterException(val parameter: KParameter,
21+
// When deserialized by the JDK, the parameter property will be null, ignoring nullability.
22+
// This is a temporary workaround for #572 and we will eventually remove this class.
23+
class MissingKotlinParameterException(@Transient val parameter: KParameter,
2224
processor: JsonParser? = null,
2325
msg: String) : MismatchedInputException(processor, msg) {
2426
@Deprecated("Use main constructor", ReplaceWith("MissingKotlinParameterException(KParameter, JsonParser?, String)"))
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.fasterxml.jackson.module.kotlin
2+
3+
import org.junit.Test
4+
import kotlin.test.assertNotNull
5+
import kotlin.test.assertNull
6+
7+
class MissingKotlinParameterExceptionTest {
8+
@Test
9+
fun jdkSerializabilityTest() {
10+
val param = ::MissingKotlinParameterException.parameters.first()
11+
val ex = MissingKotlinParameterException(param, null, "test")
12+
13+
val serialized = jdkSerialize(ex)
14+
val deserialized = jdkDeserialize<MissingKotlinParameterException>(serialized)
15+
16+
assertNotNull(deserialized)
17+
// see comment at MissingKotlinParameterException
18+
assertNull(deserialized.parameter)
19+
}
20+
}

0 commit comments

Comments
 (0)