Uploaded image for project: 'Kuali Rice Development'
  1. Kuali Rice Development
  2. KULRICE-12268

KRAD Demo Raw Freemarker Exception with bad url expect html 404 error

    Details

    • Type: Bug Fix
    • Status: Closed
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 2.4, 2.5
    • Fix Version/s: 2.5.1
    • Security Level: Public (Public: Anyone can view)
    • Labels:
      None
    • Rice Team:
      Framework
    • Sprint:
      Framework 2.5.1 Sprint 1
    • KAI Review Status:
      Not Required
    • KTI Review Status:
      Not Required
    • Code Review Status:
      Not Required
    • Story Points:
      3

      Description

      For instance:

      
      Expression view.theme is undefined on line 33, column 12 in krad/WEB-INF/ftl/lib/html.ftl. The problematic instruction: ---------- ==> list view.theme.cssFiles as cssFile [on line 33, column 5 in krad/WEB-INF/ftl/lib/html.ftl] in user-directive krad.html [on line 18, column 1 in krad/WEB-INF/ftl/fullView.ftl] in include "fullView.ftl" [on line 71, column 9 in krad/WEB-INF/ftl/uifRender.ftl] ---------- Java backtrace for programmers: ---------- freemarker.core.InvalidReferenceException: Expression view.theme is undefined on line 33, column 12 in krad/WEB-INF/ftl/lib/html.ftl.
       at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:125)
       at freemarker.core.TemplateObject.invalidTypeException(TemplateObject.java:135)
       at freemarker.core.Dot._getAsTemplateModel(Dot.java:78)
       at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
       at freemarker.core.IteratorBlock.accept(IteratorBlock.java:94)
       at freemarker.core.Environment.visit(Environment.java:221)
       at freemarker.core.MixedContent.accept(MixedContent.java:92)
       at freemarker.core.Environment.visit(Environment.java:221)
       at freemarker.core.Macro$Context.runMacro(Macro.java:172)
       at freemarker.core.Environment.visit(Environment.java:614)
       at freemarker.core.UnifiedCall.accept(UnifiedCall.java:106)
       at freemarker.core.Environment.visit(Environment.java:221)
       at freemarker.core.MixedContent.accept(MixedContent.java:92)
       at freemarker.core.Environment.visit(Environment.java:221)
       at freemarker.core.Environment.include(Environment.java:1508)
       at freemarker.core.Include.accept(Include.java:169)
       at freemarker.core.Environment.visit(Environment.java:221)
       at freemarker.core.IfBlock.accept(IfBlock.java:82)
       at freemarker.core.Environment.visit(Environment.java:221)
       at freemarker.core.MixedContent.accept(MixedContent.java:92)
       at freemarker.core.Environment.visit(Environment.java:221)
       at freemarker.core.Environment.visit(Environment.java:310)
       at freemarker.core.CompressedBlock.accept(CompressedBlock.java:73)
       at freemarker.core.Environment.visit(Environment.java:221)
       at freemarker.core.MixedContent.accept(MixedContent.java:92)
       at freemarker.core.Environment.visit(Environment.java:221)
       at freemarker.core.Environment.process(Environment.java:199)
       at freemarker.template.Template.process(Template.java:259)
       at org.springframework.web.servlet.view.freemarker.FreeMarkerView.processTemplate(FreeMarkerView.java:366)
       at org.springframework.web.servlet.view.freemarker.FreeMarkerView.doRender(FreeMarkerView.java:283)
       at org.springframework.web.servlet.view.freemarker.FreeMarkerView.renderMergedTemplateModel(FreeMarkerView.java:233)
       at org.springframework.web.servlet.view.AbstractTemplateView.renderMergedOutputModel(AbstractTemplateView.java:167)
       at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:263)
       at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1208)
       at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992)
       at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939)
       at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
       at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
       at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
       at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.kuali.rice.krad.web.filter.CharsetFilter.doFilter(CharsetFilter.java:58)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.kuali.rice.krad.web.filter.UserLoginFilter.doFilter(UserLoginFilter.java:89)
       at org.kuali.rice.krad.web.filter.UserLoginFilter.doFilter(UserLoginFilter.java:77)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.kuali.rice.krad.web.filter.BootstrapFilterChain.doFilter(BootstrapFilter.java:327)
       at org.kuali.rice.krad.web.filter.DummyLoginFilter.doFilter(DummyLoginFilter.java:82)
       at org.kuali.rice.krad.web.filter.DummyLoginFilter.doFilter(DummyLoginFilter.java:62)
       at org.kuali.rice.krad.web.filter.BootstrapFilterChain.doFilter(BootstrapFilter.java:320)
       at org.kuali.rice.krad.web.filter.BootstrapFilter.doFilter(BootstrapFilter.java:199)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.kuali.rice.krad.web.filter.UifSessionTimeoutFilter.doFilter(UifSessionTimeoutFilter.java:106)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.kuali.rice.core.web.Log4JContextClearingFilter.doFilterInternal(Log4JContextClearingFilter.java:37)
       at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.kuali.rice.krad.web.filter.HideWebInfFilter.doFilter(HideWebInfFilter.java:68)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.springframework.web.filter.AbstractRequestLoggingFilter.doFilterInternal(AbstractRequestLoggingFilter.java:213)
       at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
       at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
       at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
       at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
       at java.lang.Thread.run(Thread.java:662)
      
      

      DemoFreemarker404Aft.testLookUpConditionalCriteriaBookmark
      org.kuali.rice.krad.DemoFreemarker404Aft.testLookUpConditionalCriteriaBookmark
      https://ci.kuali.org/view/rice/view/2.5/view/test-release/job/rice-2.5-test-functional-env14-jenkins-krad-sampleapp/lastCompletedBuild/testReport/org.kuali.rice.krad/DemoFreemarker404Aft/testLookUpConditionalCriteriaBookmark/

      Solution:
      After controller is ran and still has no view then display 404 error (or some nice error view).

        Attachments

          Issue Links

            Activity

            Hide
            jheckel Jeff Heckel (Inactive) added a comment -

            I am not familiar with that editor. If can explain how to recreate the error then perhaps I can find an alternative.

            Show
            jheckel Jeff Heckel (Inactive) added a comment - I am not familiar with that editor. If can explain how to recreate the error then perhaps I can find an alternative.
            Hide
            cniesen Claus Niesen added a comment -

            I think the steps are:

            • In the rice sample app (i.e. http://env1.rice.kuali.org/ ) perform an Agenda Lookup and submit an agenda or Create New Agenda and submit
            • Top left of the screen are two buttons, one of them is the document search click it
            • Find the submitted document and click the document id

            I didn't see an error though. The inquiry view of the Agenda opened fine.

            Show
            cniesen Claus Niesen added a comment - I think the steps are: In the rice sample app (i.e. http://env1.rice.kuali.org/ ) perform an Agenda Lookup and submit an agenda or Create New Agenda and submit Top left of the screen are two buttons, one of them is the document search click it Find the submitted document and click the document id I didn't see an error though. The inquiry view of the Agenda opened fine.
            Hide
            jheckel Jeff Heckel (Inactive) added a comment -

            I tried the steps that Claus mentioned and did not get an error either.

            Show
            jheckel Jeff Heckel (Inactive) added a comment - I tried the steps that Claus mentioned and did not get an error either.
            Hide
            kbtaylor Kristina Taylor (Inactive) added a comment -

            That's really bizarre. I was able to see it pretty consistently yesterday and on another document today but now that I've reimpexed I'm not able to see it anymore. I do know that there was one exception that Chris had to put in for KULRICE-13907 which might have helped, but I'm worried about other cases we're going to run across. I will resolve this for now and reopen if we have other issues.

            Show
            kbtaylor Kristina Taylor (Inactive) added a comment - That's really bizarre. I was able to see it pretty consistently yesterday and on another document today but now that I've reimpexed I'm not able to see it anymore. I do know that there was one exception that Chris had to put in for KULRICE-13907 which might have helped, but I'm worried about other cases we're going to run across. I will resolve this for now and reopen if we have other issues.
            Hide
            mztaylor Martin Taylor (Inactive) added a comment -

            Closing 2.5.1 Development

            Show
            mztaylor Martin Taylor (Inactive) added a comment - Closing 2.5.1 Development

              People

              • Assignee:
                jheckel Jeff Heckel (Inactive)
                Reporter:
                eghm-kuali-m Erik Meade
              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0 minutes
                  0m
                  Logged:
                  Time Spent - 6 hours
                  6h