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

[DEA] Subject profile page breaking #1365

Closed
Tracked by #1666
mahalakshme opened this issue Oct 23, 2024 · 0 comments
Closed
Tracked by #1666

[DEA] Subject profile page breaking #1365

mahalakshme opened this issue Oct 23, 2024 · 0 comments
Assignees

Comments

@mahalakshme
Copy link
Contributor

mahalakshme commented Oct 23, 2024

https://avni.freshdesk.com/a/tickets/4806

Issue:

org name: Goonj, env: prod

This link for DEA subject profile page is breaking but this is working

Network 500 console error when trying to execute rules

java.lang.IndexOutOfBoundsException: Index: 0,
Size: 0 at java.util.ArrayList.rangeCheck(ArrayList.java: 659)at java.util.ArrayList.get(ArrayList.java: 435)at org.avni.server.service.ObservationService.constructObservation(ObservationService.java: 228)at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java: 193)at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java: 1384)at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java: 482)at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java: 472)at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java: 708)at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java: 234)at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java: 566)at org.avni.server.service.ObservationService.constructObservationModelContracts(ObservationService.java: 220)at org.avni.server.web.request.rules.constructWrappers.IndividualConstructionService.constructBasicSubject(IndividualConstructionService.java: 81)at org.avni.server.web.request.rules.constructWrappers.IndividualConstructionService.getSubjectInfo(IndividualConstructionService.java: 50)at org.avni.server.web.request.rules.constructWrappers.RuleServiceEntityContractBuilder.toContract(RuleServiceEntityContractBuilder.java: 37)at org.avni.server.service.RuleService.executeSubjectSummaryRule(RuleService.java: 200)at org.avni.server.service.RuleService$$FastClassBySpringCGLIB$$ec943409.invoke(<generated>)at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java: 204)at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java: 685)at org.avni.server.service.RuleService$$EnhancerBySpringCGLIB$$67792d8d.executeSubjectSummaryRule(<generated>)at org.avni.server.web.RuleController.subjectSummaryRule(RuleController.java: 133)at sun.reflect.GeneratedMethodAccessor1654.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 43)at java.lang.reflect.Method.invoke(Method.java: 498)at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java: 338)at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java: 197)at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java: 750)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java: 163)at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java: 69)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java: 185)at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java: 689)at org.avni.server.web.RuleController$$EnhancerBySpringCGLIB$$30a458df.subjectSummaryRule(<generated>)at sun.reflect.GeneratedMethodAccessor1654.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 43)at java.lang.reflect.Method.invoke(Method.java: 498)at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java: 209)at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java: 136)at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java: 102)at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java: 870)at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java: 776)at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java: 87)at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java: 991)at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java: 925)at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java: 978)at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java: 870)at javax.servlet.http.HttpServlet.service(HttpServlet.java: 529)at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java: 855)at javax.servlet.http.HttpServlet.service(HttpServlet.java: 623)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java: 209)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 153)at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java: 51)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java: 178)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 153)at org.avni.server.framework.sync.MutableRequestFilter.doFilter(MutableRequestFilter.java: 35)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java: 178)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 153)at org.avni.server.framework.security.LimitHostNamesFilter.doFilterInternal(LimitHostNamesFilter.java: 34)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java: 107)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java: 178)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 153)at org.springframework.web.filter.ForwardedHeaderFilter.doFilterInternal(ForwardedHeaderFilter.java: 152)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java: 107)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java: 178)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 153)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java: 320)at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java: 127)at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java: 91)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java: 334)at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java: 119)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java: 334)at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java: 137)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java: 334)at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java: 111)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java: 334)at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java: 170)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java: 334)at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java: 63)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java: 334)at org.avni.server.framework.security.AuthenticationFilter.doFilterInternal(AuthenticationFilter.java: 73)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java: 107)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java: 334)at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java: 116)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java: 334)at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java: 66)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java: 107)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java: 334)at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java: 105)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java: 334)at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java: 56)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java: 107)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java: 334)at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java: 215)at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java: 178)at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java: 357)at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java: 270)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java: 178)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 153)at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java: 99)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java: 107)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java: 178)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 153)at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java: 109)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java: 107)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java: 178)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 153)at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java: 81)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java: 107)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java: 178)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 153)at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java: 200)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java: 107)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java: 178)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 153)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java: 168)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java: 90)at org.keycloak.adapters.tomcat.AbstractAuthenticatedActionsValve.invoke(AbstractAuthenticatedActionsValve.java: 67)at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java: 481)at org.keycloak.adapters.tomcat.AbstractKeycloakAuthenticatorValve.invoke(AbstractKeycloakAuthenticatorValve.java: 181)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java: 130)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java: 93)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java: 74)at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java: 670)at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java: 765)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java: 343)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: 926)at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java: 1790)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.lang.Thread.run(Thread.java: 750)

AC:

The DEA subject profile page should load without any issue

Tech analysis

Looks like some case for repeatable question group is not handled

Test cases:

Subject profile Page should not break when rendering question group

  • repeatable or non-repeatable
  • with or without values
  • when server side rules(Visit schedule or decision rule) need to execute with or without values
@mahalakshme mahalakshme converted this from a draft issue Oct 23, 2024
@mahalakshme mahalakshme moved this from In Analysis to Ready in Avni Product Oct 23, 2024
@1t5j0y 1t5j0y self-assigned this Oct 24, 2024
@mahalakshme mahalakshme moved this from In Code Review to QA Ready in Avni Product Oct 24, 2024
@AchalaBelokar AchalaBelokar moved this from In QA to Done in Avni Product Oct 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

No branches or pull requests

3 participants