Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug: c.s.w.s.e.EasyControllerExceptionHandler #1640

Open
vishalnagda1 opened this issue Feb 7, 2025 · 2 comments
Open

Bug: c.s.w.s.e.EasyControllerExceptionHandler #1640

vishalnagda1 opened this issue Feb 7, 2025 · 2 comments
Labels
bug Something isn't working

Comments

@vishalnagda1
Copy link

Chat2DB Version

0.3.7

Describe the bug

I'm using the docker to run the chat2db app.
Here is the docker-compose.yml file for your reference:

services:
  mysql:
    image: mysql
    container_name: mysql
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=password
      - MYSQL_DATABASE=learn
      - MYSQL_USER=admin
      - MYSQL_PASSWORD=password
    volumes:
      - mysqldata:/var/lib/mysql
    ports:
      - "3306:3306"
    networks:
      - db_network

  chat2db:
    container_name: chat2db
    image: chat2db/chat2db:latest
    ports:
      - "10824:10824"
    volumes:
      - ~/.chat2db-docker:/root/.chat2db
    restart: unless-stopped
    stdin_open: true
    tty: true
    networks:
      - db_network

volumes:
  pgdata:
  mysqldata:

networks:
  db_network:
    driver: bridge

My System Config:
OS: Mac OS 15.3
Processor: Apple Silicon (M3)
Platform: Docker Desktop 4.38.0

Below given is the exception occurred after connecting to the database I opened a table and send a very simple prompt i.e. "create a entry in cats table" then I hit the return key and got below exception.

2025-02-07 18:38:38.464  INFO 1 --- [io-10824-exec-9] c.d.forest.logging.DefaultLogHandler    .21 : 11bc6fcd952349c4ae1958fbc9fbdbdb | [Forest] Request (okhttp3): 
	GET http://test.sqlgpt.cn/gateway/api/client/loginQrCode HTTP
	Headers: 
		User-Agent: forest/1.5.32
2025-02-07 18:38:39.101  INFO 1 --- [io-10824-exec-9] c.d.forest.logging.DefaultLogHandler    .21 : 11bc6fcd952349c4ae1958fbc9fbdbdb | [Forest] Response: Status = 301, Time = 634ms
2025-02-07 18:38:39.103  INFO 1 --- [io-10824-exec-9] c.d.forest.logging.DefaultLogHandler    .21 : 11bc6fcd952349c4ae1958fbc9fbdbdb | [Forest] Request (okhttp3): 
	[Redirect]: From GET http://test.sqlgpt.cn/gateway/api/client/loginQrCode -> 301
	GET https://test.sqlgpt.cn/gateway/api/client/loginQrCode HTTPS
	Headers: 
		User-Agent: forest/1.5.32
2025-02-07 18:38:40.027  INFO 1 --- [io-10824-exec-9] c.d.forest.logging.DefaultLogHandler    .21 : 11bc6fcd952349c4ae1958fbc9fbdbdb | [Forest] Response: Status = 404, Time = 923ms
2025-02-07 18:38:40.033 ERROR 1 --- [io-10824-exec-9] c.s.w.s.e.EasyControllerExceptionHandler.155 : 11bc6fcd952349c4ae1958fbc9fbdbdb | An unknown exception occurred /api/ai/config/getLoginQrCode:ActionResult(success=false, errorCode=common.systemError, errorMessage=An exception occurs, you can view the exception details in the log in the help menu., errorDetail=com.dtflys.forest.exceptions.ForestHandlerException: com.dtflys.forest.exceptions.ForestConvertException: [Forest] auto converter: 'DefaultAutoConverter' error: Cannot invoke "com.dtflys.forest.converter.ForestConverter.convertToJavaObject(Object, java.lang.reflect.Type)" because the return value of "java.util.Map.get(Object)" is null
	at com.dtflys.forest.handler.ResultHandler.getResult(ResultHandler.java:156)
	at com.dtflys.forest.handler.ResultHandler.getResult(ResultHandler.java:44)
	at com.dtflys.forest.http.ResultGetter.get(ResultGetter.java:30)
	at com.dtflys.forest.http.ForestResponse.getResult(ForestResponse.java:367)
	at com.dtflys.forest.reflection.MethodLifeCycleHandler.handleSyncWithException(MethodLifeCycleHandler.java:89)
	at com.dtflys.forest.reflection.MethodLifeCycleHandler.handleSync(MethodLifeCycleHandler.java:55)
	at com.dtflys.forest.backend.ResponseHandler.handleSync(ResponseHandler.java:39)
	at com.dtflys.forest.backend.okhttp3.response.OkHttp3ResponseHandler.handleSync(OkHttp3ResponseHandler.java:29)
	at com.dtflys.forest.backend.okhttp3.executor.OkHttp3Executor.execute(OkHttp3Executor.java:244)
	at com.dtflys.forest.backend.okhttp3.executor.OkHttp3Executor.execute(OkHttp3Executor.java:278)
	at com.dtflys.forest.http.ForestRequest.execute(ForestRequest.java:4706)
	at com.dtflys.forest.backend.ResponseHandler.handleSync(ResponseHandler.java:37)
	at com.dtflys.forest.backend.okhttp3.response.OkHttp3ResponseHandler.handleSync(OkHttp3ResponseHandler.java:29)
	at com.dtflys.forest.backend.okhttp3.executor.OkHttp3Executor.execute(OkHttp3Executor.java:244)
	at com.dtflys.forest.backend.okhttp3.executor.OkHttp3Executor.execute(OkHttp3Executor.java:278)
	at com.dtflys.forest.http.ForestRequest.execute(ForestRequest.java:4706)
	at com.dtflys.forest.http.ForestRequest.execute(ForestRequest.java:4878)
	at com.dtflys.forest.http.ForestRequest.execute(ForestRequest.java:4890)
	at ai.chat2db.server.web.api.http.GatewayClientService.getLoginQrCode(GatewayClientService.java:39)
	at ai.chat2db.server.web.api.controller.ai.AiConfigController.getLoginQrCode(AiConfigController.java:62)
	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.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)
	at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)
	at ai.chat2db.server.web.api.aspect.ConnectionInfoHandler.connectionInfoHandler(ConnectionInfoHandler.java:62)
	at jdk.internal.reflect.GeneratedMethodAccessor66.invoke(Unknown Source)
	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.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:637)
	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:627)
	at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:71)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)
	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)
	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:702)
	at ai.chat2db.server.web.api.controller.ai.AiConfigController$$SpringCGLIB$$0.getLoginQrCode(<generated>)
	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.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:207)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:152)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:884)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1081)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:974)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1011)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
	at ai.chat2db.server.web.start.config.interceptor.CorsFilter.doFilter(CorsFilter.java:33)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
	at org.zalando.logbook.servlet.LogbookFilter.doFilter(LogbookFilter.java:76)
	at org.zalando.logbook.servlet.HttpFilter.doFilter(HttpFilter.java:32)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
	at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
	at ai.chat2db.server.web.start.log.LogOncePerRequestFilter.doFilterInternal(LogOncePerRequestFilter.java:32)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:166)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:894)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: com.dtflys.forest.exceptions.ForestConvertException: [Forest] auto converter: 'DefaultAutoConverter' error: Cannot invoke "com.dtflys.forest.converter.ForestConverter.convertToJavaObject(Object, java.lang.reflect.Type)" because the return value of "java.util.Map.get(Object)" is null
	at com.dtflys.forest.converter.auto.DefaultAutoConverter.convertToJavaObject(DefaultAutoConverter.java:110)
	at com.dtflys.forest.handler.ResultHandler.getResult(ResultHandler.java:147)
	... 103 more
Caused by: java.lang.NullPointerException: Cannot invoke "com.dtflys.forest.converter.ForestConverter.convertToJavaObject(Object, java.lang.reflect.Type)" because the return value of "java.util.Map.get(Object)" is null
	at com.dtflys.forest.converter.auto.DefaultAutoConverter.tryConvert(DefaultAutoConverter.java:35)
	at com.dtflys.forest.converter.auto.DefaultAutoConverter.convertToJavaObject(DefaultAutoConverter.java:87)
	... 104 more
, solutionLink=https://github.com/chat2db/Chat2DB/wiki/Chat2DB, traceId=null), request parameters:{}

com.dtflys.forest.exceptions.ForestHandlerException: com.dtflys.forest.exceptions.ForestConvertException: [Forest] auto converter: 'DefaultAutoConverter' error: Cannot invoke "com.dtflys.forest.converter.ForestConverter.convertToJavaObject(Object, java.lang.reflect.Type)" because the return value of "java.util.Map.get(Object)" is null
	at com.dtflys.forest.handler.ResultHandler.getResult(ResultHandler.java:156)
	at com.dtflys.forest.handler.ResultHandler.getResult(ResultHandler.java:44)
	at com.dtflys.forest.http.ResultGetter.get(ResultGetter.java:30)
	at com.dtflys.forest.http.ForestResponse.getResult(ForestResponse.java:367)
	at com.dtflys.forest.reflection.MethodLifeCycleHandler.handleSyncWithException(MethodLifeCycleHandler.java:89)
	at com.dtflys.forest.reflection.MethodLifeCycleHandler.handleSync(MethodLifeCycleHandler.java:55)
	at com.dtflys.forest.backend.ResponseHandler.handleSync(ResponseHandler.java:39)
	at com.dtflys.forest.backend.okhttp3.response.OkHttp3ResponseHandler.handleSync(OkHttp3ResponseHandler.java:29)
	at com.dtflys.forest.backend.okhttp3.executor.OkHttp3Executor.execute(OkHttp3Executor.java:244)
	at com.dtflys.forest.backend.okhttp3.executor.OkHttp3Executor.execute(OkHttp3Executor.java:278)
	at com.dtflys.forest.http.ForestRequest.execute(ForestRequest.java:4706)
	at com.dtflys.forest.backend.ResponseHandler.handleSync(ResponseHandler.java:37)
	at com.dtflys.forest.backend.okhttp3.response.OkHttp3ResponseHandler.handleSync(OkHttp3ResponseHandler.java:29)
	at com.dtflys.forest.backend.okhttp3.executor.OkHttp3Executor.execute(OkHttp3Executor.java:244)
	at com.dtflys.forest.backend.okhttp3.executor.OkHttp3Executor.execute(OkHttp3Executor.java:278)
	at com.dtflys.forest.http.ForestRequest.execute(ForestRequest.java:4706)
	at com.dtflys.forest.http.ForestRequest.execute(ForestRequest.java:4878)
	at com.dtflys.forest.http.ForestRequest.execute(ForestRequest.java:4890)
	at ai.chat2db.server.web.api.http.GatewayClientService.getLoginQrCode(GatewayClientService.java:39)
	at ai.chat2db.server.web.api.controller.ai.AiConfigController.getLoginQrCode(AiConfigController.java:62)
	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.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)
	at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)
	at ai.chat2db.server.web.api.aspect.ConnectionInfoHandler.connectionInfoHandler(ConnectionInfoHandler.java:62)
	at jdk.internal.reflect.GeneratedMethodAccessor66.invoke(Unknown Source)
	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.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:637)
	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:627)
	at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:71)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)
	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)
	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:702)
	at ai.chat2db.server.web.api.controller.ai.AiConfigController$$SpringCGLIB$$0.getLoginQrCode(<generated>)
	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.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:207)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:152)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:884)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1081)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:974)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1011)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
	at ai.chat2db.server.web.start.config.interceptor.CorsFilter.doFilter(CorsFilter.java:33)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
	at org.zalando.logbook.servlet.LogbookFilter.doFilter(LogbookFilter.java:76)
	at org.zalando.logbook.servlet.HttpFilter.doFilter(HttpFilter.java:32)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
	at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
	at ai.chat2db.server.web.start.log.LogOncePerRequestFilter.doFilterInternal(LogOncePerRequestFilter.java:32)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:166)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:894)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: com.dtflys.forest.exceptions.ForestConvertException: [Forest] auto converter: 'DefaultAutoConverter' error: Cannot invoke "com.dtflys.forest.converter.ForestConverter.convertToJavaObject(Object, java.lang.reflect.Type)" because the return value of "java.util.Map.get(Object)" is null
	at com.dtflys.forest.converter.auto.DefaultAutoConverter.convertToJavaObject(DefaultAutoConverter.java:110)
	at com.dtflys.forest.handler.ResultHandler.getResult(ResultHandler.java:147)
	... 103 common frames omitted
Caused by: java.lang.NullPointerException: Cannot invoke "com.dtflys.forest.converter.ForestConverter.convertToJavaObject(Object, java.lang.reflect.Type)" because the return value of "java.util.Map.get(Object)" is null
	at com.dtflys.forest.converter.auto.DefaultAutoConverter.tryConvert(DefaultAutoConverter.java:35)
	at com.dtflys.forest.converter.auto.DefaultAutoConverter.convertToJavaObject(DefaultAutoConverter.java:87)
	... 104 common frames omitted
@vishalnagda1 vishalnagda1 added the bug Something isn't working label Feb 7, 2025
@tmlx1990
Copy link
Contributor

tmlx1990 commented Feb 8, 2025

Hello, the open-source version requires configuring a third-party AI to enable AI functionality.

@vishalnagda1
Copy link
Author

vishalnagda1 commented Feb 8, 2025

@tmlx1990 As an end user, it is difficult to identify the root cause of this issue when the feature does not work as expected. I would like to request an enhancement to improve user guidance in such scenarios.

Specifically, it would be helpful to display a notification, popup, or any other suitable message informing the user that they need to configure a third-party AI to enable this feature. This would prevent confusion and improve the overall user experience.

Looking forward to your thoughts on this!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants