Kuali Rice Development
  1. Kuali Rice Development
  2. KULRICE-7696

PeopleFlow member type of Group or Role throws (freemarker?) Exception

    Details

    • Type: Bug Fix Bug Fix
    • Status: Closed Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.2.0-m2
    • Fix Version/s: Not version specific
    • Component/s: Development
    • Security Level: Public (Public: Anyone can view)
    • Labels:
      None
    • Similar issues:
      KULRICE-10652PeopleFlow members of type Group should not be able to set the action request policy
      KULRICE-10893PeopleFlow add Group/Role oddity
      KULRICE-8057PeopleFlow member add exceptions
      KULRICE-14054Switching people flow member type to role/group and back to principal breaks principal lookup
      KULRICE-8104Changing PeopleFlow Member Type results in errors
      KULRICE-8968PeopleFlow Maintenance Document - Unable to set ApprovePolicy when PeopleFlow Member is of type Group
      KULRICE-12428On PeopleFlow maint doc, the lookup for a Role member isn't returning the roll
      KULRICE-10504Setting PeopleFlow member type to Group in addline results in FTL error
      KULRICE-7619People Flow members of type Role appear as type Principal when editing
      KULRICE-13297Searching for Roles by Group Name or Group Namespace throws STE
    • Rice Module:
      KRAD
    • KAI Review Status:
      Not Required
    • KTI Review Status:
      Not Required

      Description

      Selecting a PeopleFlow Member of Group or Role (while creating a new PeopleFlow) results in a thrown exception displayed in the Member section:

      user-directive macroInvoke [on line 46, column 13 in krad/WEB-INF/ftl/lib/template.ftl] in user-directive krad.template [on line 23, column 5 in krad/WEB-INF/ftl/components/widget/quickFinder.ftl] in user-directive uif_quickFinder [on line 1, column 1 in krad/WEB-INF/ftl/lib/krad.ftl$anonymous_interpreted] in user-directive macroInvoke [on line 46, column 13 in krad/WEB-INF/ftl/lib/template.ftl] in user-directive krad.template [on line 68, column 17 in krad/WEB-INF/ftl/components/field/dataInputField.ftl] in user-directive krad.fieldLbl [on line 24, column 9 in krad/WEB-INF/ftl/components/field/dataInputField.ftl] in user-directive krad.div [on line 22, column 5 in krad/WEB-INF/ftl/components/field/dataInputField.ftl] in user-directive uif_dataInputField [on line 1, column 1 in krad/WEB-INF/ftl/updateComponent.ftl$anonymous_interpreted] in user-directive macroInvoke [on line 46, column 13 in krad/WEB-INF/ftl/lib/template.ftl] in user-directive krad.template [on line 30, column 17 in krad/WEB-INF/ftl/updateComponent.ftl] in include "updateComponent.ftl" [on line 32, column 17 in krad/WEB-INF/ftl/uifRender.ftl] ---------- Java backtrace for programmers: ---------- freemarker.template.TemplateModelException: freemarker.core.InvalidReferenceException: Expression element.actionImage.source is undefined on line 51, column 19 in krad/WEB-INF/ftl/components/element/action.ftl. at freemarker.core.Interpret$TemplateProcessorModel.getWriter(Interpret.java:157) at freemarker.core.Environment.visit(Environment.java:297) at freemarker.core.UnifiedCall.accept(UnifiedCall.java:130) 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.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.ConditionalBlock.accept(ConditionalBlock.java:79) 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.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.Environment.include(Environment.java:1508) at freemarker.core.Interpret$TemplateProcessorModel.getWriter(Interpret.java:141) at freemarker.core.Environment.visit(Environment.java:297) at freemarker.core.UnifiedCall.accept(UnifiedCall.java:130) 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.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.ConditionalBlock.accept(ConditionalBlock.java:79) 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.ConditionalBlock.accept(ConditionalBlock.java:79) 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:406) at freemarker.core.BodyInstruction.accept(BodyInstruction.java:93) 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.visit(Environment.java:406) at freemarker.core.BodyInstruction.accept(BodyInstruction.java:93) 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.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.Environment.include(Environment.java:1508) at freemarker.core.Interpret$TemplateProcessorModel.getWriter(Interpret.java:141) at freemarker.core.Environment.visit(Environment.java:297) at freemarker.core.UnifiedCall.accept(UnifiedCall.java:130) 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.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.ConditionalBlock.accept(ConditionalBlock.java:79) 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.MixedContent.accept(MixedContent.java:92) 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.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:237) 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:262) at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1157) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:927) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.kuali.rice.krad.web.CharsetFilter.doFilter(CharsetFilter.java:56) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.kuali.rice.kew.web.UserPreferencesFilter.doFilter(UserPreferencesFilter.java:78) at org.kuali.rice.kew.web.UserPreferencesFilter.doFilter(UserPreferencesFilter.java:62) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.kuali.rice.kew.web.UserLoginFilter.doFilter(UserLoginFilter.java:89) at org.kuali.rice.kew.web.UserLoginFilter.doFilter(UserLoginFilter.java:77) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:271) at org.kuali.rice.kew.web.DummyLoginFilter.doFilter(DummyLoginFilter.java:96) at org.kuali.rice.kew.web.DummyLoginFilter.doFilter(DummyLoginFilter.java:55) at org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:264) at org.kuali.rice.kew.web.BootstrapFilter.doFilter(BootstrapFilter.java:162) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.kuali.rice.core.web.Log4JContextClearingFilter.doFilterInternal(Log4JContextClearingFilter.java:37) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.kuali.rice.krad.web.filter.HideWebInfFilter.doFilter(HideWebInfFilter.java:69) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:157) at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:131) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: freemarker.core.InvalidReferenceException: Expression element.actionImage.source is undefined on line 51, column 19 in krad/WEB-INF/ftl/components/element/action.ftl. at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:125) at freemarker.core.Expression.getStringValue(Expression.java:118) at freemarker.core.Expression.getStringValue(Expression.java:93) at freemarker.core.DollarVariable.accept(DollarVariable.java:76) 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.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.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.Environment.include(Environment.java:1508) at freemarker.core.Interpret$TemplateProcessorModel.getWriter(Interpret.java:141) ... 170 more
      

        Issue Links

          Activity

          Hide
          Martin Taylor (Inactive) added a comment -

          It should be set in the ExpressionsUtils.setPropertiesFromGraph (line 115) but it doesn't look to be getting the value picked up.
          reef

          configurableWithExpression.getPropertyExpressions().put(adjustedPropertyName, expression);
          
          Show
          Martin Taylor (Inactive) added a comment - It should be set in the ExpressionsUtils.setPropertiesFromGraph (line 115) but it doesn't look to be getting the value picked up. reef configurableWithExpression.getPropertyExpressions().put(adjustedPropertyName, expression);
          Hide
          Martin Taylor (Inactive) added a comment -

          PropertyReplacer expressionsGraph are not being applied. Testing change to VHSI:performComponentInitialization:

           
          ExpressionUtils.populatePropertyExpressionsFromGraph(replacer, true);
          
          Show
          Martin Taylor (Inactive) added a comment - PropertyReplacer expressionsGraph are not being applied. Testing change to VHSI:performComponentInitialization: ExpressionUtils.populatePropertyExpressionsFromGraph(replacer, true );
          Hide
          Martin Taylor (Inactive) added a comment -

          At the end of VSHI:performComponentInitialization there is a call to do componentInitialization on the replacer->replacement components however there is an expression graph at the top level (replacer) which is not evaluated. The change took care of this (don't know if the refresh settings needs to be true or not).

          Show
          Martin Taylor (Inactive) added a comment - At the end of VSHI:performComponentInitialization there is a call to do componentInitialization on the replacer->replacement components however there is an expression graph at the top level (replacer) which is not evaluated. The change took care of this (don't know if the refresh settings needs to be true or not).
          Hide
          Martin Taylor (Inactive) added a comment -

          Committed change to trunk. Fix is related to KULRICE-6845 expression handling.

          Show
          Martin Taylor (Inactive) added a comment - Committed change to trunk. Fix is related to KULRICE-6845 expression handling.
          Hide
          Martin Taylor (Inactive) added a comment -

          Added expression path processing for issue. Erik is adding selenium tests for this case and 7705 so they will be covered as far as tests.

          Show
          Martin Taylor (Inactive) added a comment - Added expression path processing for issue. Erik is adding selenium tests for this case and 7705 so they will be covered as far as tests.

            People

            • Assignee:
              Martin Taylor (Inactive)
              Reporter:
              Erik Meade
            • Votes:
              0 Vote for this issue
              Watchers:
              0 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 - 3 days, 15 minutes
                3d 15m

                  Structure Helper Panel