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 {}