Skip to content

Commit a3bdc08

Browse files
committed
Fixed to use common util for Member accessibility override
The part related to KFunction is not modified because common util cannot be applied.
1 parent 3734219 commit a3bdc08

File tree

4 files changed

+8
-4
lines changed

4 files changed

+8
-4
lines changed

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

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.JavaType
44
import com.fasterxml.jackson.databind.deser.std.StdDelegatingDeserializer
55
import com.fasterxml.jackson.databind.ser.std.StdDelegatingSerializer
66
import com.fasterxml.jackson.databind.type.TypeFactory
7+
import com.fasterxml.jackson.databind.util.ClassUtil
78
import com.fasterxml.jackson.databind.util.StdConverter
89
import kotlin.reflect.KClass
910
import kotlin.time.toJavaDuration
@@ -51,7 +52,7 @@ internal class ValueClassBoxConverter<S : Any?, D : Any>(
5152
val boxedClass: KClass<D>
5253
) : StdConverter<S, D>() {
5354
private val boxMethod = boxedClass.java.getDeclaredMethod("box-impl", unboxedClass).apply {
54-
if (!this.isAccessible) this.isAccessible = true
55+
ClassUtil.checkAndFixAccess(this, false)
5556
}
5657

5758
@Suppress("UNCHECKED_CAST")

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

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import com.fasterxml.jackson.databind.JsonDeserializer
1111
import com.fasterxml.jackson.databind.deser.Deserializers
1212
import com.fasterxml.jackson.databind.deser.std.StdDeserializer
1313
import com.fasterxml.jackson.databind.exc.InvalidDefinitionException
14+
import com.fasterxml.jackson.databind.util.ClassUtil
1415
import java.lang.reflect.Method
1516
import java.lang.reflect.Modifier
1617
import kotlin.reflect.full.primaryConstructor
@@ -106,7 +107,7 @@ internal class WrapsNullableValueClassBoxDeserializer<S, D : Any>(
106107
private val inputType: Class<*> = creator.parameterTypes[0]
107108

108109
init {
109-
creator.apply { if (!this.isAccessible) this.isAccessible = true }
110+
ClassUtil.checkAndFixAccess(creator, false)
110111
}
111112

112113
// Cache the result of wrapping null, since the result is always expected to be the same.

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

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import com.fasterxml.jackson.databind.*
66
import com.fasterxml.jackson.databind.deser.std.StdKeyDeserializer
77
import com.fasterxml.jackson.databind.deser.std.StdKeyDeserializers
88
import com.fasterxml.jackson.databind.exc.InvalidDefinitionException
9+
import com.fasterxml.jackson.databind.util.ClassUtil
910
import java.lang.reflect.Method
1011
import kotlin.reflect.KClass
1112
import kotlin.reflect.full.primaryConstructor
@@ -78,7 +79,7 @@ internal class ValueClassKeyDeserializer<S, D : Any>(
7879
private val unboxedClass: Class<*> = creator.parameterTypes[0]
7980

8081
init {
81-
creator.apply { if (!this.isAccessible) this.isAccessible = true }
82+
ClassUtil.checkAndFixAccess(creator, false)
8283
}
8384

8485
// Based on databind error

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

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.fasterxml.jackson.module.kotlin
22

3+
import com.fasterxml.jackson.databind.util.ClassUtil
34
import kotlin.reflect.KFunction
45
import kotlin.reflect.full.extensionReceiverParameter
56
import kotlin.reflect.full.instanceParameter
@@ -39,7 +40,7 @@ internal class MethodValueCreator<T> private constructor(
3940
possibleCompanion.java.enclosingClass.declaredFields
4041
.firstOrNull { it.type.kotlin.isCompanion }
4142
?.let {
42-
it.isAccessible = true
43+
ClassUtil.checkAndFixAccess(it, false)
4344

4445
// If the instance of the companion object cannot be obtained, accessibility will always be false
4546
it.get(null) to false

0 commit comments

Comments
 (0)