From 4333726023c8fb5acd32df4be5b02a50a3057f4e Mon Sep 17 00:00:00 2001 From: Felix Wimpy Wijaya Date: Wed, 20 May 2020 19:36:35 +0900 Subject: [PATCH] Fix bug where the dynamoDBMapperRef config is not being read The class dynamoDBTemplateBuilder is still getting reference from field dynamoDBMapperName, while when we set attribute dynamoDBMapperRef in EnableDynamoDBRepositories, field of dynamoDBMapperName will always null. It makes the application failed to startup with Error java.lang.IllegalArgumentException: 'beanName' must not be empty Fixing by registering using the correct attribute. --- .../config/DynamoDBRepositoryConfigExtension.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/socialsignin/spring/data/dynamodb/repository/config/DynamoDBRepositoryConfigExtension.java b/src/main/java/org/socialsignin/spring/data/dynamodb/repository/config/DynamoDBRepositoryConfigExtension.java index 6a52c04d..7ec8fc25 100644 --- a/src/main/java/org/socialsignin/spring/data/dynamodb/repository/config/DynamoDBRepositoryConfigExtension.java +++ b/src/main/java/org/socialsignin/spring/data/dynamodb/repository/config/DynamoDBRepositoryConfigExtension.java @@ -93,8 +93,8 @@ public void postProcess(BeanDefinitionBuilder builder, AnnotationRepositoryConfi String repositoryBeanName = config.generateBeanName(builder.getBeanDefinition()); postProcess(builder, repositoryBeanName, attributes.getString("amazonDynamoDBRef"), - attributes.getString("dynamoDBMapperConfigRef"), attributes.getString("dynamoDBOperationsRef"), - attributes.getString("mappingContextRef")); + attributes.getString("dynamoDBMapperRef"), attributes.getString("dynamoDBMapperConfigRef"), + attributes.getString("dynamoDBOperationsRef"), attributes.getString("mappingContextRef")); } /* @@ -129,7 +129,8 @@ public void postProcess(BeanDefinitionBuilder builder, XmlRepositoryConfiguratio private Map dynamoDBTemplateCache = new HashMap<>(); private void postProcess(BeanDefinitionBuilder builder, String repositoryName, String amazonDynamoDBRef, - String dynamoDBMapperConfigRef, String dynamoDBOperationsRef, String dynamoDBMappingContextRef) { + String dynamoDBMapperRef, String dynamoDBMapperConfigRef, String dynamoDBOperationsRef, + String dynamoDBMappingContextRef) { if (StringUtils.hasText(dynamoDBOperationsRef)) { builder.addPropertyReference("dynamoDBOperations", dynamoDBOperationsRef); @@ -155,7 +156,12 @@ private void postProcess(BeanDefinitionBuilder builder, String repositoryName, S // AmazonDynamoDB amazonDynamoDB, DynamoDBMapper dynamoDBMapper, // DynamoDBMapperConfig dynamoDBMapperConfig dynamoDBTemplateBuilder.addConstructorArgReference(dynamoDBRef); - dynamoDBTemplateBuilder.addConstructorArgReference(this.dynamoDBMapperName); + + if (StringUtils.hasText(dynamoDBMapperRef)) { + dynamoDBTemplateBuilder.addConstructorArgReference(dynamoDBMapperRef); + } else { + dynamoDBTemplateBuilder.addConstructorArgReference(this.dynamoDBMapperName); + } if (StringUtils.hasText(dynamoDBMapperConfigRef)) { dynamoDBTemplateBuilder.addConstructorArgReference(dynamoDBMapperConfigRef);