tarantool / cartridge-springdata

Spring Data Tarantool

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Failed to load ApplicationContext due to NPE in TarantoolQueryMethod

wey1and opened this issue · comments

//Having the following repository
public interface SimpleObjectRepository extends TarantoolRepository<SimpleObject, Integer> {

    String test();
}

//If you add such a repository and inherit from the repository above, then the context will fall
public interface TestRepository extends SimpleObjectRepository{
}
Caused by: java.lang.NullPointerException: null
	at org.springframework.data.tarantool.core.query.TarantoolQueryMethod.getQueryOutputType(TarantoolQueryMethod.java:53) ~[spring-data-tarantool-0.5.0.jar:na]
	at org.springframework.data.tarantool.core.query.TarantoolQueryLookupStrategy.isOutputExpectTuple(TarantoolQueryLookupStrategy.java:48) ~[spring-data-tarantool-0.5.0.jar:na]
	at org.springframework.data.tarantool.core.query.TarantoolQueryLookupStrategy.resolveQuery(TarantoolQueryLookupStrategy.java:40) ~[spring-data-tarantool-0.5.0.jar:na]
	at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.lookupQuery(QueryExecutorMethodInterceptor.java:99) ~[spring-data-commons-2.3.7.RELEASE.jar:2.3.7.RELEASE]
	at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.lambda$mapMethodsToQuery$1(QueryExecutorMethodInterceptor.java:92) ~[spring-data-commons-2.3.7.RELEASE.jar:2.3.7.RELEASE]
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) ~[na:na]
	at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133) ~[na:na]
	at java.base/java.util.Collections$UnmodifiableCollection$1.forEachRemaining(Collections.java:1054) ~[na:na]
	at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) ~[na:na]
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) ~[na:na]
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[na:na]
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) ~[na:na]
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na]
	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578) ~[na:na]
	at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.mapMethodsToQuery(QueryExecutorMethodInterceptor.java:94) ~[spring-data-commons-2.3.7.RELEASE.jar:2.3.7.RELEASE]
	at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.lambda$new$0(QueryExecutorMethodInterceptor.java:84) ~[spring-data-commons-2.3.7.RELEASE.jar:2.3.7.RELEASE]
	at java.base/java.util.Optional.map(Optional.java:265) ~[na:na]
	at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.<init>(QueryExecutorMethodInterceptor.java:84) ~[spring-data-commons-2.3.7.RELEASE.jar:2.3.7.RELEASE]
	at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:332) ~[spring-data-commons-2.3.7.RELEASE.jar:2.3.7.RELEASE]
	at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.lambda$afterPropertiesSet$4(RepositoryFactoryBeanSupport.java:294) ~[spring-data-commons-2.3.7.RELEASE.jar:2.3.7.RELEASE]
	at org.springframework.data.util.Lazy.getNullable(Lazy.java:211) ~[spring-data-commons-2.3.7.RELEASE.jar:2.3.7.RELEASE]
	at org.springframework.data.util.Lazy.get(Lazy.java:95) ~[spring-data-commons-2.3.7.RELEASE.jar:2.3.7.RELEASE]
	at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertiesSet(RepositoryFactoryBeanSupport.java:300) ~[spring-data-commons-2.3.7.RELEASE.jar:2.3.7.RELEASE]
	at org.springframework.data.tarantool.repository.support.TarantoolRepositoryFactoryBean.afterPropertiesSet(TarantoolRepositoryFactoryBean.java:60) ~[spring-data-tarantool-0.5.0.jar:na]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1858) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1795) ~[spring-beans-5.2.13.RELEASE.jar:5.2.13.RELEASE]
	... 50 common frames omitted

Why do you need a method without @Query in the Repository? But I agree NPE is not a very elegant answer