From 6951d8b7116ac319cf086600f1803173e85c9cf0 Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Thu, 21 Jun 2018 08:55:45 +0200 Subject: [PATCH] DATACMNS-1345 - RepositoryFactoryBeanSupport now properly reports missing MappingContext. --- .../support/RepositoryFactoryBeanSupport.java | 3 +-- .../RepositoryFactoryBeanSupportUnitTests.java | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/springframework/data/repository/core/support/RepositoryFactoryBeanSupport.java b/src/main/java/org/springframework/data/repository/core/support/RepositoryFactoryBeanSupport.java index edcd767c2..c74de18f5 100644 --- a/src/main/java/org/springframework/data/repository/core/support/RepositoryFactoryBeanSupport.java +++ b/src/main/java/org/springframework/data/repository/core/support/RepositoryFactoryBeanSupport.java @@ -66,7 +66,7 @@ public abstract class RepositoryFactoryBeanSupport, private Optional customImplementation = Optional.empty(); private Optional repositoryFragments = Optional.empty(); private NamedQueries namedQueries; - private Optional> mappingContext; + private Optional> mappingContext = Optional.empty(); private ClassLoader classLoader; private BeanFactory beanFactory; private boolean lazyInit = false; @@ -82,7 +82,6 @@ public abstract class RepositoryFactoryBeanSupport, * * @param repositoryInterface must not be {@literal null}. */ - @SuppressWarnings("null") protected RepositoryFactoryBeanSupport(Class repositoryInterface) { Assert.notNull(repositoryInterface, "Repository interface must not be null!"); diff --git a/src/test/java/org/springframework/data/repository/core/support/RepositoryFactoryBeanSupportUnitTests.java b/src/test/java/org/springframework/data/repository/core/support/RepositoryFactoryBeanSupportUnitTests.java index 0aeb77072..9ce42fd12 100755 --- a/src/test/java/org/springframework/data/repository/core/support/RepositoryFactoryBeanSupportUnitTests.java +++ b/src/test/java/org/springframework/data/repository/core/support/RepositoryFactoryBeanSupportUnitTests.java @@ -72,6 +72,24 @@ public class RepositoryFactoryBeanSupportUnitTests { assertThat(information.getQueryMethods()).isEmpty(); } + @Test // DATACMNS-1345 + public void reportsMappingContextUnavailableForPersistentEntityLookup() { + + RepositoryFactoryBeanSupport bean = new RepositoryFactoryBeanSupport( + SampleRepository.class) { + + @Override + protected RepositoryFactorySupport createRepositoryFactory() { + return new DummyRepositoryFactory(mock(SampleRepository.class)); + } + }; + + bean.afterPropertiesSet(); + + assertThatExceptionOfType(IllegalStateException.class) // + .isThrownBy(() -> bean.getPersistentEntity()); + } + interface SampleRepository extends Repository {} interface SampleWithQuerydslRepository extends Repository, QuerydslPredicateExecutor {}