From fc8d51cd3be67c5f0abea9ed539728e702ab359f Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Thu, 30 Jul 2020 16:43:12 +0200 Subject: [PATCH] DATAJDBC-586 - Guard JdbcRepositoryFactoryBean against setting null values for properties. --- .../support/JdbcRepositoryFactoryBean.java | 17 +++++++++++++++++ .../JdbcRepositoryFactoryBeanUnitTests.java | 6 +----- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/support/JdbcRepositoryFactoryBean.java b/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/support/JdbcRepositoryFactoryBean.java index 8d17f38b2..b5e4eb829 100644 --- a/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/support/JdbcRepositoryFactoryBean.java +++ b/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/support/JdbcRepositoryFactoryBean.java @@ -96,12 +96,17 @@ public class JdbcRepositoryFactoryBean, S, ID extend @Autowired protected void setMappingContext(RelationalMappingContext mappingContext) { + Assert.notNull(mappingContext, "MappingContext must not be null"); + super.setMappingContext(mappingContext); this.mappingContext = mappingContext; } @Autowired protected void setDialect(Dialect dialect) { + + Assert.notNull(dialect, "Dialect must not be null"); + this.dialect = dialect; } @@ -109,6 +114,9 @@ public class JdbcRepositoryFactoryBean, S, ID extend * @param dataAccessStrategy can be {@literal null}. */ public void setDataAccessStrategy(DataAccessStrategy dataAccessStrategy) { + + Assert.notNull(dataAccessStrategy, "DataAccessStrategy must not be null"); + this.dataAccessStrategy = dataAccessStrategy; } @@ -118,15 +126,24 @@ public class JdbcRepositoryFactoryBean, S, ID extend */ @Autowired(required = false) public void setQueryMappingConfiguration(QueryMappingConfiguration queryMappingConfiguration) { + + Assert.notNull(queryMappingConfiguration, "QueryMappingConfiguration must not be null"); + this.queryMappingConfiguration = queryMappingConfiguration; } public void setJdbcOperations(NamedParameterJdbcOperations operations) { + + Assert.notNull(operations, "NamedParameterJdbcOperations must not be null"); + this.operations = operations; } @Autowired public void setConverter(JdbcConverter converter) { + + Assert.notNull(converter, "JdbcConverter must not be null"); + this.converter = converter; } diff --git a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/support/JdbcRepositoryFactoryBeanUnitTests.java b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/support/JdbcRepositoryFactoryBeanUnitTests.java index c816d9ec8..a975ebc24 100644 --- a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/support/JdbcRepositoryFactoryBeanUnitTests.java +++ b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/support/JdbcRepositoryFactoryBeanUnitTests.java @@ -97,17 +97,13 @@ public class JdbcRepositoryFactoryBeanUnitTests { @Test(expected = IllegalArgumentException.class) // DATAJDBC-151 public void requiresListableBeanFactory() { - factoryBean.setBeanFactory(mock(BeanFactory.class)); } - @Test(expected = IllegalStateException.class) // DATAJDBC-155 + @Test(expected = IllegalArgumentException.class) // DATAJDBC-155 public void afterPropertiesThrowsExceptionWhenNoMappingContextSet() { factoryBean.setMappingContext(null); - factoryBean.setApplicationEventPublisher(publisher); - factoryBean.setBeanFactory(beanFactory); - factoryBean.afterPropertiesSet(); } @Test // DATAJDBC-155