Reputation: 150
I'm currently in the process of migrating from Spring Boot 2 to Spring Boot 3. Previously, my project was smoothly running on Java 8 with Spring Boot 2.4. Now, I'm using Java 17 and Spring Boot 3.1.10, with Oracle 19 as my database and Maven 3.9.2 as my build tool. Although I haven't encountered any compiler issues during the migration, I'm facing runtime errors when attempting to run the project. Below is the error message:
[WARN ] [2024-04-17T17:27:56.763+05:30Z] requestId= REQUEST.PARTY= REQUEST.OWNER= [org.apache.juli.logging.DirectJDKLog] [restartedMain] [173] The web application [processflow5] appears to have started a thread named [oracle.jdbc.driver.BlockSource.ThreadedCachingBlockSource.BlockReleaser] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: [email protected]/jdk.internal.misc.Unsafe.park(Native Method) [email protected]/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252) [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1672) app//oracle.jdbc.internal.Monitor$WaitableMonitor.monitorWait(Monitor.java:259) app//oracle.jdbc.internal.Monitor$WaitableMonitor.monitorWait(Monitor.java:241) app//oracle.jdbc.driver.BlockSource$ThreadedCachingBlockSource$BlockReleaser.run(BlockSource.java:346) [WARN ] [2024-04-17T17:27:56.765+05:30Z] requestId= REQUEST.PARTY= REQUEST.OWNER= [org.apache.juli.logging.DirectJDKLog] [restartedMain] [173] The web application [processflow5] appears to have started a thread named [InterruptTimer] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: [email protected]/java.lang.Object.wait(Native Method) [email protected]/java.util.TimerThread.mainLoop(Timer.java:563) [email protected]/java.util.TimerThread.run(Timer.java:516) [INFO ] [2024-04-17T17:27:56.786+05:30Z] requestId= REQUEST.PARTY= REQUEST.OWNER= [org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLogger] [restartedMain] [82]
Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. [ERROR] [2024-04-17T17:27:56.806+05:30Z] requestId= REQUEST.PARTY= REQUEST.OWNER= [org.springframework.boot.SpringApplication] [restartedMain] [835] Application run failed org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userVerify': Unsatisfied dependency expressed through field 'userData': Error creating bean with name 'userServiceImplExtention': Unsatisfied dependency expressed through field 'userRepository': Error creating bean with name 'userRepository' defined in niz.sample.test.loc.repository.UserRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Could not create query for public abstract org.springframework.data.domain.Page niz.sample.test.loc.repository.UserRepository.findPaginatedByUserAndStatus(java.lang.String,java.lang.String,java.lang.String,org.springframework.data.domain.PageRequest); Reason: Validation failed for query for method public abstract org.springframework.data.domain.Page niz.sample.test.loc.repository.UsersRepository.findPaginatedByUserAndStatus(java.lang.String,java.lang.String,java.lang.String,org.springframework.data.domain.PageRequest) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:776) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:756) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:497) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1414) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:595) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:518) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:973) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:952) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:615) at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:738) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:440) at org.springframework.boot.SpringApplication.run(SpringApplication.java:324) at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:150) at biz.nable.sample.oc.ApplicationStarter.main(ApplicationStarter.java:47) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException:Error creating bean with name 'userVerify': Unsatisfied dependency expressed through field 'userData': Error creating bean with name 'userServiceImplExtention': Unsatisfied dependency expressed through field 'userRepository': Error creating bean with name 'userRepository' defined in niz.sample.test.loc.repository.UserRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Could not create query for public abstract org.springframework.data.domain.Page niz.sample.test.loc.repository.UserRepository.findPaginatedByUserAndStatus(java.lang.String,java.lang.String,java.lang.String,org.springframework.data.domain.PageRequest); Reason: Validation failed for query for method public abstract org.springframework.data.domain.Page niz.sample.test.loc.repository.UsersRepository.findPaginatedByUserAndStatus(java.lang.String,java.lang.String,java.lang.String,org.springframework.data.domain.PageRequest) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:776) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:756) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:497) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1414) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:595) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:518) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1417) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1337) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:773) 24 common frames omitted Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userVerify': Unsatisfied dependency expressed through field 'userData': Error creating bean with name 'userServiceImplExtention': Unsatisfied dependency expressed through field 'userRepository': Error creating bean with name 'userRepository' defined in niz.sample.test.loc.repository.UserRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Could not create query for public abstract org.springframework.data.domain.Page niz.sample.test.loc.repository.UserRepository.findPaginatedByUserAndStatus(java.lang.String,java.lang.String,java.lang.String,org.springframework.data.domain.PageRequest); Reason: Validation failed for query for method public abstract org.springframework.data.domain.Page niz.sample.test.loc.repository.UsersRepository.findPaginatedByUserAndStatus(java.lang.String,java.lang.String,java.lang.String,org.springframework.data.domain.PageRequest) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1768) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:596) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:518) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1417) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1337) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:773) 38 common frames omitted Caused by: org.springframework.data.repository.query.QueryCreationException: Could not create query for public abstract org.springframework.data.domain.Page niz.sample.test.loc.repository.UserRepository.findPaginatedByCompanyAndStatus(java.lang.String,java.lang.String,java.lang.String,org.springframework.data.domain.PageRequest); Reason: Validation failed for query for method public abstract org.springframework.data.domain.Page niz.sample.test.loc.repository.UserRepository.findPaginatedByCompanyAndStatus(java.lang.String,java.lang.String,java.lang.String,org.springframework.data.domain.PageRequest) at org.springframework.data.repository.query.QueryCreationException.create(QueryCreationException.java:101) at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.lookupQuery(QueryExecutorMethodInterceptor.java:115) at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.mapMethodsToQuery(QueryExecutorMethodInterceptor.java:99) at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.lambda$new$0(QueryExecutorMethodInterceptor.java:88) at java.base/java.util.Optional.map(Optional.java:260) at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.(QueryExecutorMethodInterceptor.java:88) at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:357) at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.lambda$afterPropertiesSet$5(RepositoryFactoryBeanSupport.java:279) at org.springframework.data.util.Lazy.getNullable(Lazy.java:245) at org.springframework.data.util.Lazy.get(Lazy.java:114) at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertiesSet(RepositoryFactoryBeanSupport.java:285) at org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean.afterPropertiesSet(JpaRepositoryFactoryBean.java:132) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1815) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1764) 48 common frames omitted Caused by: java.lang.IllegalArgumentException: Validation failed for query for method public abstract org.springframework.data.domain.Page niz.sample.test.loc.repository.UserRepository.findPaginatedByCompanyAndStatus(java.lang.String,java.lang.String,java.lang.String,org.springframework.data.domain.PageRequest) at org.springframework.data.jpa.repository.query.SimpleJpaQuery.validateQuery(SimpleJpaQuery.java:100) at org.springframework.data.jpa.repository.query.SimpleJpaQuery.(SimpleJpaQuery.java:70) at org.springframework.data.jpa.repository.query.JpaQueryFactory.fromMethodWithQueryString(JpaQueryFactory.java:60) at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$DeclaredQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:170) at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$CreateIfNotFoundQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:252) at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$AbstractQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:95) at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.lookupQuery(QueryExecutorMethodInterceptor.java:111) 60 common frames omitted Caused by: java.lang.IllegalArgumentException: org.hibernate.query.SemanticException: A query exception occurred [SELECT rp FROM Users rp WHERE companyId =?2 AND Status =?3 AND cast(rp.userId string) LIKE ?1] at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:138) at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:175) at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:182) at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:761) at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:663) at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:127) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:360) at jdk.proxy4/jdk.proxy4.$Proxy148.createQuery(Unknown Source) at org.springframework.data.jpa.repository.query.SimpleJpaQuery.validateQuery(SimpleJpaQuery.java:94) 66 common frames omitted Caused by: org.hibernate.query.SemanticException: A query exception occurred [SELECT rp FROM User rp WHERE companyId =?2 AND status =?3 AND cast(rp.userId string) LIKE ?1] at org.hibernate.query.hql.internal.StandardHqlTranslator.parseHql(StandardHqlTranslator.java:130) at org.hibernate.query.hql.internal.StandardHqlTranslator.translate(StandardHqlTranslator.java:77) at org.hibernate.internal.AbstractSharedSessionContract.lambda$createQuery$2(AbstractSharedSessionContract.java:748) at org.hibernate.query.internal.QueryInterpretationCacheStandardImpl.createHqlInterpretation(QueryInterpretationCacheStandardImpl.java:141) at org.hibernate.query.internal.QueryInterpretationCacheStandardImpl.resolveHqlInterpretation(QueryInterpretationCacheStandardImpl.java:128) at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:745) 75 common frames omitted Caused by: org.hibernate.query.sqm.ParsingException: line 1:88 no viable alternative at input 'SELECTrpFROMUserrpWHEREcompanyId=?2ANDstatus=?3ANDcast(gp.userIdstring' at org.hibernate.query.hql.internal.StandardHqlTranslator$1.syntaxError(StandardHqlTranslator.java:46) at org.antlr.v4.runtime.ProxyErrorListener.syntaxError(ProxyErrorListener.java:41) at org.antlr.v4.runtime.Parser.notifyErrorListeners(Parser.java:543) at org.antlr.v4.runtime.DefaultErrorStrategy.reportNoViableAlternative(DefaultErrorStrategy.java:310) at org.antlr.v4.runtime.DefaultErrorStrategy.reportError(DefaultErrorStrategy.java:136) at org.hibernate.grammars.hql.HqlParser.queryExpression(HqlParser.java:1180) at org.hibernate.grammars.hql.HqlParser.selectStatement(HqlParser.java:382) at org.hibernate.grammars.hql.HqlParser.statement(HqlParser.java:313) at org.hibernate.query.hql.internal.StandardHqlTranslator.parseHql(StandardHqlTranslator.java:116) 80 common frames omitted
Process finished with exit code 0
I'd appreciate any guidance on resolving this issue and ensuring a seamless transition to Spring Boot 3.
Upvotes: 1
Views: 1212
Reputation: 32028
Based on the underlying cause, you would mostly need to fix the semantics of the query translated based on the name of your API under the UserRepository
which is currently represented as(from the exception):
org.springframework.data.domain.Page niz.sample.test.loc.repository.UserRepository.findPaginatedByUserAndStatus(java.lang.String,java.lang.String,java.lang.String,org.springframework.data.domain.PageRequest);
to something like
Page<User> findByCompanyAndStatus(String company, String status, Pageable pageable);
Suspecting this based on the logs:
at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.lookupQuery(QueryExecutorMethodInterceptor.java:111) 60 common frames omitted Caused by: java.lang.IllegalArgumentException: org.hibernate.query.SemanticException: A query exception occurred [SELECT rp FROM Users rp WHERE companyId =?2 AND Status =?3 AND cast(rp.userId string) LIKE ?1]
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:138)
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:175)
Upvotes: -1