Skip to content

Failed to register dynamoDBMapperRef #25

@felixwimpyw

Description

@felixwimpyw

In my project, I need to specify dynamoDBMapperRef field in @EnableDynamoDBRepositories and I just realize it doesn't working as expected.

Expected Behavior

My project will be starting just fine and my repo will be using the registered dynamoDBMapperRef

Actual Behavior

My project failed to start and exception as below :

java.lang.IllegalArgumentException: 'beanName' must not be empty
	at org.springframework.util.Assert.hasText(Assert.java:284) ~[spring-core-5.2.6.RELEASE.jar:5.2.6.RELEASE]
	at org.springframework.beans.factory.config.RuntimeBeanReference.<init>(RuntimeBeanReference.java:61) ~[spring-beans-5.2.6.RELEASE.jar:5.2.6.RELEASE]
	at org.springframework.beans.factory.config.RuntimeBeanReference.<init>(RuntimeBeanReference.java:50) ~[spring-beans-5.2.6.RELEASE.jar:5.2.6.RELEASE]
	at org.springframework.beans.factory.support.BeanDefinitionBuilder.addConstructorArgReference(BeanDefinitionBuilder.java:209) ~[spring-beans-5.2.6.RELEASE.jar:5.2.6.RELEASE]
	at org.socialsignin.spring.data.dynamodb.repository.config.DynamoDBRepositoryConfigExtension.lambda$postProcess$0(DynamoDBRepositoryConfigExtension.java:158) ~[spring-data-dynamodb-5.2.3.jar:5.2.3]
	at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1133) ~[na:na]
	at org.socialsignin.spring.data.dynamodb.repository.config.DynamoDBRepositoryConfigExtension.postProcess(DynamoDBRepositoryConfigExtension.java:152) ~[spring-data-dynamodb-5.2.3.jar:5.2.3]
	at org.socialsignin.spring.data.dynamodb.repository.config.DynamoDBRepositoryConfigExtension.postProcess(DynamoDBRepositoryConfigExtension.java:95) ~[spring-data-dynamodb-5.2.3.jar:5.2.3]
	at org.springframework.data.repository.config.RepositoryConfigurationDelegate.registerRepositoriesIn(RepositoryConfigurationDelegate.java:163) ~[spring-data-commons-2.3.0.RELEASE.jar:2.3.0.RELEASE]
	at org.springframework.data.repository.config.RepositoryBeanDefinitionRegistrarSupport.registerBeanDefinitions(RepositoryBeanDefinitionRegistrarSupport.java:107) ~[spring-data-commons-2.3.0.RELEASE.jar:2.3.0.RELEASE]
	at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.lambda$loadBeanDefinitionsFromRegistrars$1(ConfigurationClassBeanDefinitionReader.java:384) ~[spring-context-5.2.6.RELEASE.jar:5.2.6.RELEASE]
	at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:684) ~[na:na]
	at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsFromRegistrars(ConfigurationClassBeanDefinitionReader.java:383) ~[spring-context-5.2.6.RELEASE.jar:5.2.6.RELEASE]
	at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:148) ~[spring-context-5.2.6.RELEASE.jar:5.2.6.RELEASE]
	at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:120) ~[spring-context-5.2.6.RELEASE.jar:5.2.6.RELEASE]
	at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:331) ~[spring-context-5.2.6.RELEASE.jar:5.2.6.RELEASE]
	at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:236) ~[spring-context-5.2.6.RELEASE.jar:5.2.6.RELEASE]
	at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:280) ~[spring-context-5.2.6.RELEASE.jar:5.2.6.RELEASE]
	at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:96) ~[spring-context-5.2.6.RELEASE.jar:5.2.6.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:706) ~[spring-context-5.2.6.RELEASE.jar:5.2.6.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:532) ~[spring-context-5.2.6.RELEASE.jar:5.2.6.RELEASE]
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143) ~[spring-boot-2.3.0.RELEASE.jar:2.3.0.RELEASE]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758) ~[spring-boot-2.3.0.RELEASE.jar:2.3.0.RELEASE]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750) ~[spring-boot-2.3.0.RELEASE.jar:2.3.0.RELEASE]
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) ~[spring-boot-2.3.0.RELEASE.jar:2.3.0.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) ~[spring-boot-2.3.0.RELEASE.jar:2.3.0.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1237) ~[spring-boot-2.3.0.RELEASE.jar:2.3.0.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) ~[spring-boot-2.3.0.RELEASE.jar:2.3.0.RELEASE]
	at com.example.springddb.SpringDdbApplication.main(SpringDdbApplication.java:10) ~[classes/:na]


Process finished with exit code 1

Steps to Reproduce the Problem

It is actually quite simple to reproduce
I just need to create simple project, then specify dynamoDBMapperRef field in @EnableDynamoDBRepositories

@Configuration
@EnableDynamoDBRepositories(dynamoDBMapperRef = "dynamoDBMapper", basePackages = "com.example.xxxx")
public class DynamoDBConfig {
...............

Specifications

Spring Data DynamoDB Version: 5.2.3 (2.2)
Spring Data Version: 2.3.0.RELEASE
AWS SDK Version: 1.11.664
Java Version: 11.0.5 - Java HotSpot(TM) 64-Bit Server VM 11.0.5+10-LTS
Platform Details: Mac OS X 10.15.2

All those information are logged by org.socialsignin.spring.data.dynamodb.repository.support.DynamoDBRepositoryFactory on INFO level on startup.
Or use java -version and mvn dependency:tree | grep -E 'spring|aws' to provide those version numbers.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions