diff --git a/inject-kotlin/src/main/kotlin/io/micronaut/kotlin/processing/annotation/KotlinAnnotationMetadataBuilder.kt b/inject-kotlin/src/main/kotlin/io/micronaut/kotlin/processing/annotation/KotlinAnnotationMetadataBuilder.kt index 6a7c90d0299..37b68fa0614 100644 --- a/inject-kotlin/src/main/kotlin/io/micronaut/kotlin/processing/annotation/KotlinAnnotationMetadataBuilder.kt +++ b/inject-kotlin/src/main/kotlin/io/micronaut/kotlin/processing/annotation/KotlinAnnotationMetadataBuilder.kt @@ -40,7 +40,7 @@ import io.micronaut.core.annotation.AnnotationClassValue import io.micronaut.core.annotation.AnnotationUtil import io.micronaut.core.annotation.AnnotationValue import io.micronaut.core.util.ArrayUtils -import io.micronaut.core.util.clhm.ConcurrentLinkedHashMap +import io.micronaut.core.util.StringUtils import io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder import io.micronaut.inject.annotation.MutableAnnotationMetadata import io.micronaut.inject.visitor.VisitorContext @@ -400,7 +400,9 @@ internal class KotlinAnnotationMetadataBuilder(private val symbolProcessorEnviro val argument = annotationType.mirror.defaultArguments.find { it.name == prop.simpleName } if (argument?.value != null && argument.isDefault()) { val value = argument.value!! - map[prop] = value + if (value !is String || !StringUtils.isEmpty(value)) { + map[prop] = value + } } } map diff --git a/inject-kotlin/src/test/groovy/io/micronaut/kotlin/processing/beans/BeanDefinitionSpec.groovy b/inject-kotlin/src/test/groovy/io/micronaut/kotlin/processing/beans/BeanDefinitionSpec.groovy index 9f962d1d8ce..e36de34a0bb 100644 --- a/inject-kotlin/src/test/groovy/io/micronaut/kotlin/processing/beans/BeanDefinitionSpec.groovy +++ b/inject-kotlin/src/test/groovy/io/micronaut/kotlin/processing/beans/BeanDefinitionSpec.groovy @@ -416,6 +416,7 @@ class Test then: defaults["num"] == 10 defaults["bool"] == false + defaults["value"] == null defaults["intArray1"] == new int[] {} defaults["intArray2"] == new int[] {1, 2, 3} defaults["intArray3"] == null