From ccebe28c077e689b549857c2efd2a94c5ae07197 Mon Sep 17 00:00:00 2001 From: wrongwrong Date: Sun, 19 Nov 2023 18:11:41 +0900 Subject: [PATCH] Fixed overriding findCreatorAnnotation instead of hasCreatorAnnotation fixes #200 --- .../kotlin/KotlinNamesAnnotationIntrospector.kt | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/com/fasterxml/jackson/module/kotlin/KotlinNamesAnnotationIntrospector.kt b/src/main/kotlin/com/fasterxml/jackson/module/kotlin/KotlinNamesAnnotationIntrospector.kt index aaca6ccb..77abced6 100644 --- a/src/main/kotlin/com/fasterxml/jackson/module/kotlin/KotlinNamesAnnotationIntrospector.kt +++ b/src/main/kotlin/com/fasterxml/jackson/module/kotlin/KotlinNamesAnnotationIntrospector.kt @@ -2,6 +2,7 @@ package com.fasterxml.jackson.module.kotlin import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.cfg.MapperConfig import com.fasterxml.jackson.databind.introspect.Annotated import com.fasterxml.jackson.databind.introspect.AnnotatedConstructor import com.fasterxml.jackson.databind.introspect.AnnotatedMember @@ -111,11 +112,13 @@ internal class KotlinNamesAnnotationIntrospector( } } - override fun hasCreatorAnnotation(member: Annotated): Boolean = - if (member is AnnotatedConstructor && member.isKotlinConstructorWithParameters()) - cache.checkConstructorIsCreatorAnnotated(member) { hasCreatorAnnotation(it) } - else - false + override fun findCreatorAnnotation(config: MapperConfig<*>, ann: Annotated): JsonCreator.Mode? { + if (ann !is AnnotatedConstructor || !ann.isKotlinConstructorWithParameters()) return null + + return JsonCreator.Mode.DEFAULT.takeIf { + cache.checkConstructorIsCreatorAnnotated(ann) { hasCreatorAnnotation(it) } + } + } @Suppress("UNCHECKED_CAST") private fun findKotlinParameterName(param: AnnotatedParameter): String? {