Student Success Plan
  1. Student Success Plan
  2. SSP-811

Accessing Action Plan created error from Goals

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: SSP 1.2.0, SSP 2.0.0-b1
    • Fix Version/s: SSP 1.2.0, SSP 2.0.0-b1
    • Component/s: Early Alert
    • Labels:
      None
    • Environment:
      Tomcat-SQL Server

      Description

      Initially clicking the Action Plan for a student produced the following error. The environment is Tomcat-SQL Server.

      DEV: 09:12:51.002 [http-8080-7] ERROR o.jasig.ssp.web.api.PersonController - Error:
      org.springframework.beans.TypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'java.util.UUID'; nested exception is java.lang.IllegalArgumentException: Invalid UUID string: goal
      at org.springframework.beans.SimpleTypeConverter.convertIfNecessary(SimpleTypeConverter.java:61) ~[spring-beans-3.1.2.RELEASE.jar:3.1.2.RELEASE]
      at org.springframework.validation.DataBinder.convertIfNecessary(DataBinder.java:553) ~[spring-context-3.1.2.RELEASE.jar:3.1.2.RELEASE]
      at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:97) ~[spring-web-3.1.2.RELEASE.jar:3.1.2.RELEASE]
      at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:75) ~[spring-web-3.1.2.RELEASE.jar:3.1.2.RELEASE]
      at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:156) ~[spring-web-3.1.2.RELEASE.jar:3.1.2.RELEASE]
      at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:117) ~[spring-web-3.1.2.RELEASE.jar:3.1.2.RELEASE]
      at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96) ~[spring-webmvc-3.1.2.RELEASE.jar:3.1.2.RELEASE]
      at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617) ~[spring-webmvc-3.1.2.RELEASE.jar:3.1.2.RELEASE]
      at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578) ~[spring-webmvc-3.1.2.RELEASE.jar:3.1.2.RELEASE]
      at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) ~[spring-webmvc-3.1.2.RELEASE.jar:3.1.2.RELEASE]
      at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) ~[spring-webmvc-3.1.2.RELEASE.jar:3.1.2.RELEASE]
      at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) ~[spring-webmvc-3.1.2.RELEASE.jar:3.1.2.RELEASE]
      at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) ~[spring-webmvc-3.1.2.RELEASE.jar:3.1.2.RELEASE]
      at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778) ~[spring-webmvc-3.1.2.RELEASE.jar:3.1.2.RELEASE]
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) [servlet-api.jar:na]
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) [servlet-api.jar:na]
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) [catalina.jar:6.0.36]
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:6.0.36]
      at org.jasig.ssp.security.uportal.KeepSessionAliveFilter.doFilter(KeepSessionAliveFilter.java:82) [KeepSessionAliveFilter.class:na]
      at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) [spring-web-3.1.2.RELEASE.jar:3.1.2.RELEASE]
      at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259) [spring-web-3.1.2.RELEASE.jar:3.1.2.RELEASE]
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) [catalina.jar:6.0.36]
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:6.0.36]
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:369) [spring-security-web-3.0.7.RELEASE.jar:3.0.7.RELEASE]
      at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109) [spring-security-web-3.0.7.RELEASE.jar:3.0.7.RELEASE]
      at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) [spring-security-web-3.0.7.RELEASE.jar:3.0.7.RELEASE]
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) [spring-security-web-3.0.7.RELEASE.jar:3.0.7.RELEASE]
      at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97) [spring-security-web-3.0.7.RELEASE.jar:3.0.7.RELEASE]
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) [spring-security-web-3.0.7.RELEASE.jar:3.0.7.RELEASE]
      at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78) [spring-security-web-3.0.7.RELEASE.jar:3.0.7.RELEASE]
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) [spring-security-web-3.0.7.RELEASE.jar:3.0.7.RELEASE]
      at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) [spring-security-web-3.0.7.RELEASE.jar:3.0.7.RELEASE]
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) [spring-security-web-3.0.7.RELEASE.jar:3.0.7.RELEASE]
      at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35) [spring-security-web-3.0.7.RELEASE.jar:3.0.7.RELEASE]
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) [spring-security-web-3.0.7.RELEASE.jar:3.0.7.RELEASE]
      at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187) [spring-security-web-3.0.7.RELEASE.jar:3.0.7.RELEASE]
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) [spring-security-web-3.0.7.RELEASE.jar:3.0.7.RELEASE]
      at org.jasig.ssp.security.uportal.UPortalPreAuthenticatedProcessingFilter.doFilter(UPortalPreAuthenticatedProcessingFilter.java:98) [UPortalPreAuthenticatedProcessingFilter.class:na]
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) [spring-security-web-3.0.7.RELEASE.jar:3.0.7.RELEASE]
      at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) [spring-security-web-3.0.7.RELEASE.jar:3.0.7.RELEASE]
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) [spring-security-web-3.0.7.RELEASE.jar:3.0.7.RELEASE]
      at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79) [spring-security-web-3.0.7.RELEASE.jar:3.0.7.RELEASE]
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) [spring-security-web-3.0.7.RELEASE.jar:3.0.7.RELEASE]
      at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:168) [spring-security-web-3.0.7.RELEASE.jar:3.0.7.RELEASE]
      at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) [spring-web-3.1.2.RELEASE.jar:3.1.2.RELEASE]
      at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259) [spring-web-3.1.2.RELEASE.jar:3.1.2.RELEASE]
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) [catalina.jar:6.0.36]
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:6.0.36]
      at org.jasig.ssp.security.uportal.RequestAndResponseAccessFilter.doFilter(RequestAndResponseAccessFilter.java:61) [RequestAndResponseAccessFilter.class:na]
      at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) [spring-web-3.1.2.RELEASE.jar:3.1.2.RELEASE]
      at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259) [spring-web-3.1.2.RELEASE.jar:3.1.2.RELEASE]
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) [catalina.jar:6.0.36]
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:6.0.36]
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) [catalina.jar:6.0.36]
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) [catalina.jar:6.0.36]
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) [catalina.jar:6.0.36]
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) [catalina.jar:6.0.36]
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [catalina.jar:6.0.36]
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) [catalina.jar:6.0.36]
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861) [tomcat-coyote.jar:6.0.36]
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606) [tomcat-coyote.jar:6.0.36]
      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) [tomcat-coyote.jar:6.0.36]
      at java.lang.Thread.run(Thread.java:662) [na:1.6.0_38]
      Caused by: java.lang.IllegalArgumentException: Invalid UUID string: goal
      at java.util.UUID.fromString(UUID.java:201) ~[na:1.6.0_38]
      at org.springframework.beans.propertyeditors.UUIDEditor.setAsText(UUIDEditor.java:37) ~[spring-beans-3.1.2.RELEASE.jar:3.1.2.RELEASE]
      at org.springframework.beans.TypeConverterDelegate.doConvertTextValue(TypeConverterDelegate.java:434) ~[spring-beans-3.1.2.RELEASE.jar:3.1.2.RELEASE]
      at org.springframework.beans.TypeConverterDelegate.doConvertValue(TypeConverterDelegate.java:406) ~[spring-beans-3.1.2.RELEASE.jar:3.1.2.RELEASE]
      at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:163) ~[spring-beans-3.1.2.RELEASE.jar:3.1.2.RELEASE]
      at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:92) ~[spring-beans-3.1.2.RELEASE.jar:3.1.2.RELEASE]
      at org.springframework.beans.SimpleTypeConverter.convertIfNecessary(SimpleTypeConverter.java:49) ~[spring-beans-3.1.2.RELEASE.jar:3.1.2.RELEASE]
      ... 62 common frames omitted
      DEV: 09:12:51.046 [http-8080-12] WARN o.s.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/ssp/api/1/person//task/group] in DispatcherServlet with name 'Spring MVC Dispatcher Servlet'
      DEV: 09:12:51.760 [http-8080-12] INFO 404.jsp - 404 Thrown for URI: /ssp/api/1/person//task/group

        Activity

        Hide
        Dan McCallum added a comment -

        Fixed in master. Still working on back-port to 1.2.

        Show
        Dan McCallum added a comment - Fixed in master. Still working on back-port to 1.2.
        Hide
        Dan McCallum added a comment -

        Check the Git commit log for more details on what was going on here. Basically there was a race condition where if the Main tool hadn't finished loading when you clicked on the Action Plan tool, the latter would blow up. There wasn't a good reason for the shared dependency that these two were racing on, so I basically removed it.

        Here's one way to semi-conclusively prove that it's been fixed... in ExternalStudentRecordsController#loadSummaryStudentRecords() or PersonController#get(), add code like this:

        try {
          Thread.sleep(5000L);
        } catch ( Exception e ) {
          e.printStackTrace();
        }
        

        Recompile and deploy. The Main tool will take 5s+ to load. While it's loading, try clicking on the Action Plan tool... it should work. (Might get errors in the console when Main eventually does finish loading in the background... so far it seems like this doesn't actually break anything, though.)

        Show
        Dan McCallum added a comment - Check the Git commit log for more details on what was going on here. Basically there was a race condition where if the Main tool hadn't finished loading when you clicked on the Action Plan tool, the latter would blow up. There wasn't a good reason for the shared dependency that these two were racing on, so I basically removed it. Here's one way to semi-conclusively prove that it's been fixed... in ExternalStudentRecordsController#loadSummaryStudentRecords() or PersonController#get() , add code like this: try { Thread .sleep(5000L); } catch ( Exception e ) { e.printStackTrace(); } Recompile and deploy. The Main tool will take 5s+ to load. While it's loading, try clicking on the Action Plan tool... it should work. (Might get errors in the console when Main eventually does finish loading in the background... so far it seems like this doesn't actually break anything, though.)
        Hide
        Jason Elwood added a comment -

        Attempted to re-produce for several hours without an instance. Closing as QA'd.

        Show
        Jason Elwood added a comment - Attempted to re-produce for several hours without an instance. Closing as QA'd.
        Hide
        Dan McCallum added a comment -

        Reopening to replace 2.0.x with 2.0.0 in Affects and Fix Version/s

        Show
        Dan McCallum added a comment - Reopening to replace 2.0.x with 2.0.0 in Affects and Fix Version/s

          People

          • Assignee:
            Dan McCallum
            Reporter:
            Jason Elwood
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: