AtlasOfLivingAustralia / volunteer-portal

DigiVol (Biodiversity Volunteer Portal)
https://volunteer.ala.org.au
17 stars 15 forks source link

Validator skip task results in error when none left #554

Closed cdausmus closed 2 years ago

cdausmus commented 2 years ago

Error when a validator skips a task and there are none left available:

2022-10-07 11:53:43.221 ERROR --- [io-8080-exec-40] .a.c.c.C.[.[.[.[grailsDispatcherServlet] : Servlet.service() for servlet [grailsDispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.grails.gsp.GroovyPagesException: Error processing GroovyPageView: [views/validate/noTasks.gsp:14] Error executing tag <asset:script>: Cannot get property 'id' on null object] with root cause

java.lang.NullPointerException: Cannot get property 'id' on null object
        at gsp_volunteer_portal_validatenoTasks_gsp$_run_closure1$_closure4.doCall(gsp_volunteer_portal_validatenoTasks_gsp.groovy:35)
        at org.grails.taglib.TagBodyClosure.executeClosure(TagBodyClosure.java:200)
        at org.grails.taglib.TagBodyClosure.captureClosureOutput(TagBodyClosure.java:102)
        at org.grails.taglib.TagBodyClosure.call(TagBodyClosure.java:213)
        at asset.pipeline.grails.AssetsTagLib$_closure5.doCall(AssetsTagLib.groovy:114)
        at org.grails.gsp.GroovyPage.invokeTagLibClosure(GroovyPage.java:446)
        at org.grails.gsp.GroovyPage.invokeTag(GroovyPage.java:364)
        at gsp_volunteer_portal_validatenoTasks_gsp$_run_closure1.doCall(gsp_volunteer_portal_validatenoTasks_gsp.groovy:38)
        at org.grails.taglib.TagBodyClosure.executeClosure(TagBodyClosure.java:200)
        at org.grails.taglib.TagBodyClosure.captureClosureOutput(TagBodyClosure.java:102)
        at org.grails.taglib.TagBodyClosure.call(TagBodyClosure.java:213)
        at org.grails.plugins.web.taglib.SitemeshTagLib.captureTagContent(SitemeshTagLib.groovy:48)
        at org.grails.plugins.web.taglib.SitemeshTagLib$_closure1.doCall(SitemeshTagLib.groovy:124)
        at org.grails.gsp.GroovyPage.invokeTagLibClosure(GroovyPage.java:446)
        at org.grails.gsp.GroovyPage.invokeTag(GroovyPage.java:364)
        at gsp_volunteer_portal_validatenoTasks_gsp.run(gsp_volunteer_portal_validatenoTasks_gsp.groovy:41)
        at org.grails.gsp.GroovyPageWritable.doWriteTo(GroovyPageWritable.java:162)
        at org.grails.gsp.GroovyPageWritable.writeTo(GroovyPageWritable.java:82)
        at org.grails.web.servlet.view.GroovyPageView.renderTemplate(GroovyPageView.java:76)
        at org.grails.web.servlet.view.AbstractGrailsView.renderWithinGrailsWebRequest(AbstractGrailsView.java:71)
        at org.grails.web.servlet.view.AbstractGrailsView.renderMergedOutputModel(AbstractGrailsView.java:55)
        at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:304)
        at org.grails.web.sitemesh.GrailsLayoutView.renderInnerView(GrailsLayoutView.java:150)
        at org.grails.web.sitemesh.GrailsLayoutView.obtainContent(GrailsLayoutView.java:128)
        at org.grails.web.sitemesh.GrailsLayoutView.renderTemplate(GrailsLayoutView.java:63)
        at org.grails.web.servlet.view.AbstractGrailsView.renderWithinGrailsWebRequest(AbstractGrailsView.java:71)
        at org.grails.web.servlet.view.AbstractGrailsView.renderMergedOutputModel(AbstractGrailsView.java:55)
        at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:304)
        at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1286)
        at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1041)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:984)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
        at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
        at org.springframework.boot.web.filter.ApplicationContextHeaderFilter.doFilterInternal(ApplicationContextHeaderFilter.java:54)
        at au.org.ala.volunteer.BVPServletFilter.doFilter(BVPServletFilter.groovy:63)
        at org.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:77)
        at org.jasig.cas.client.util.HttpServletRequestWrapperFilter.doFilter(HttpServletRequestWrapperFilter.java:71)
        at org.jasig.cas.client.validation.AbstractTicketValidationFilter.doFilter(AbstractTicketValidationFilter.java:236)
        at org.jasig.cas.client.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:168)
        at au.org.ala.web.CooperatingFilterWrapper.doFilter(CooperatingFilterWrapper.groovy:31)
        at org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:97)
        at org.grails.web.filters.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:67)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)