Missing resource bundles in plugin are not catered for

XMLWordPrintable

      I have a plugin which references a bundle JIRA cannot access for "some reason" and I got the following stack trace:

      [INFO] [talledLocalContainer] Stacktrace:
      [INFO] [talledLocalContainer] 	at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
      [INFO] [talledLocalContainer] 	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
      [INFO] [talledLocalContainer] 	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
      [INFO] [talledLocalContainer] 	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
      [INFO] [talledLocalContainer] 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      [INFO] [talledLocalContainer] 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
      [INFO] [talledLocalContainer] 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      [INFO] [talledLocalContainer] 	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
      [INFO] [talledLocalContainer] 	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:438)
      [INFO] [talledLocalContainer] 	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
      [INFO] [talledLocalContainer] 	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
      [INFO] [talledLocalContainer] 	at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:416)
      [INFO] [talledLocalContainer] 	at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:343)
      [INFO] [talledLocalContainer] 	at org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:287)
      [INFO] [talledLocalContainer] 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
      [INFO] [talledLocalContainer] 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
      [INFO] [talledLocalContainer] 	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:567)
      [INFO] [talledLocalContainer] 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      [INFO] [talledLocalContainer] 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
      [INFO] [talledLocalContainer] 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
      [INFO] [talledLocalContainer] 	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
      [INFO] [talledLocalContainer] 	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
      [INFO] [talledLocalContainer] 	at java.lang.Thread.run(Thread.java:613)
      [INFO] [talledLocalContainer] Caused by: java.util.MissingResourceException: Can't find bundle for base name templates.applinks.cruciblereviewlinkrendererhelp, locale en_AU
      [INFO] [talledLocalContainer] 	at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:836)
      [INFO] [talledLocalContainer] 	at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:726)
      [INFO] [talledLocalContainer] 	at java.util.ResourceBundle.getBundle(ResourceBundle.java:699)
      [INFO] [talledLocalContainer] 	at com.atlassian.jira.web.bean.I18nBean.getPluginBundles(I18nBean.java:410)
      [INFO] [talledLocalContainer] 	at com.atlassian.jira.web.bean.I18nBean.<init>(I18nBean.java:88)
      [INFO] [talledLocalContainer] 	at com.atlassian.jira.web.bean.I18nBean.<init>(I18nBean.java:109)
      [INFO] [talledLocalContainer] 	at com.atlassian.jira.web.bean.I18nBean.<init>(I18nBean.java:99)
      [INFO] [talledLocalContainer] 	at com.atlassian.jira.security.JiraAuthenticationContextImpl.getI18nBean(JiraAuthenticationContextImpl.java:89)
      [INFO] [talledLocalContainer] 	at com.atlassian.jira.security.JiraAuthenticationContextImpl.getI18nHelper(JiraAuthenticationContextImpl.java:81)
      [INFO] [talledLocalContainer] 	at org.apache.jsp._500page_jsp._jspService(_500page_jsp.java:178)
      [INFO] [talledLocalContainer] 	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
      [INFO] [talledLocalContainer] 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      [INFO] [talledLocalContainer] 	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
      [INFO] [talledLocalContainer] 	... 21 more
      

      I believe this is reproducable by just having a declared i18n bundle in a plugin for which no properties file exists. I will be able to tell more once I get to the bottom of why it doesn't seem to work for me.

      Here is the culprit for me right now:

          <renderer-component-factory key="applinks.crucible.review"
                                      name="Applinks Crucible Review Link Renderer Component Factory"
                                      class="com.atlassian.jira.plugin.renderercomponent.SimpleRendererComponentFactory"
                                      system="true">
              <order>209</order>
              <param name="rendererComponentClass">com.atlassian.applinks.core.renderer.crucible.CrucibleReviewLinkRendererComponent
              </param>
              <resource type="velocity" name="help" location="templates/applinks/cruciblereviewlinkrendererhelp.vm">
                  <param name="help-section">links</param>
              </resource>
              <resource type="i18n" name="i18n" location="templates.applinks.cruciblereviewlinkrendererhelp"/>
          </renderer-component-factory>
      

            Assignee:
            Justus Pendleton (Inactive)
            Reporter:
            Samuel Le Berrigaud
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 1h
                1h