Failed to load ApplicationContext due to NPE in TarantoolQueryMethod
wey1and opened this issue · comments
Oleg Kuznetsov commented
//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
Artyom Dubinin commented
Why do you need a method without @Query
in the Repository? But I agree NPE is not a very elegant answer