• Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Medium Medium
    • 2.10.2, 2.11.0
    • 2.10.1
    • Plugins

      Freemarker templates in my own plugin (https://marketplace.atlassian.com/plugins/com.zenofx.crowd.upm/server/overview) cause the following exception:

      java.lang.NoSuchMethodError: freemarker.ext.jsp.TaglibFactory.setObjectWrapper(Lfreemarker/template/ObjectWrapper;)V
      org.apache.struts2.views.freemarker.FreemarkerManager.buildScopesHashModel(FreemarkerManager.java:368)
      org.apache.struts2.views.freemarker.FreemarkerManager.buildTemplateModel(FreemarkerManager.java:539)
      org.apache.struts2.views.freemarker.FreemarkerResult.createModel(FreemarkerResult.java:301)
      org.apache.struts2.views.freemarker.FreemarkerResult.doExecute(FreemarkerResult.java:182)
      ...
      

      Probably a version mismatch between freemarker (2.3.21) and Struts2 (2.3.29) in the Crowd installation - IMHO freemarker is too old. The default object wrapper changed in freemarker 2.3.22. When updating freemarker to 2.3.24-atlassian-2 in WEB-INF/lib of the Crowd installation, everything works as expected.

            [CWD-4820] Own freemarker templates won't render in 2.10.1

            zenofx.com added a comment -

            Hi Łukasz,

            I can confirm this works for Crowd 2.7.2 - 2.9.1 (didn't test 2.10.0 yet). Here's the relevant snippet from my atlassian-plugin.xml:

            <xwork name="My Action" key="my.action">
                  <package name="myPackage" extends="default" namespace="/console/secure/plugins/myPlugin">
                       <default-interceptor-ref name="defaultStack"/> 
                       <action name="default" class="my.Action">
                            <result name="success" type="freemarker">/templates/my.ftl</result>
                       </action>
                       ...
                  </package>
            </xwork>
            

            As I said, I guess Struts2 (xwork) and freemarker are not compatible in Crowd 2.10.

            Cheers
            Thomas

            zenofx.com added a comment - Hi Łukasz, I can confirm this works for Crowd 2.7.2 - 2.9.1 (didn't test 2.10.0 yet). Here's the relevant snippet from my atlassian-plugin.xml: <xwork name= "My Action" key= "my.action" >       < package name= "myPackage" extends = " default " namespace= "/console/secure/plugins/myPlugin" >            < default -interceptor-ref name= "defaultStack" />             <action name= " default " class= "my.Action" >                 <result name= "success" type= "freemarker" >/templates/my.ftl</result>            </action> ...      </ package > </xwork> As I said, I guess Struts2 (xwork) and freemarker are not compatible in Crowd 2.10. Cheers Thomas

            tom87 could you confirm whether that's something that worked pre 2.10.1 and stopped working after upgrading? How are you using the renderer?

            Thanks,
            Łukasz Pater

            Lukasz Pater added a comment - tom87 could you confirm whether that's something that worked pre 2.10.1 and stopped working after upgrading? How are you using the renderer? Thanks, Łukasz Pater

              ppetrowski Patryk
              474c8ea9705b zenofx.com
              Affected customers:
              2 This affects my team
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: