Uploaded image for project: 'Jira Data Center'
  1. Jira Data Center
  2. JRASERVER-8710

Better error reporting when rendering portlets with invalid parameters

    XMLWordPrintable

Details

    • We collect Jira feedback from various sources, and we evaluate what we've collected when planning our product roadmap. To understand how this piece of feedback will be reviewed, see our Implementation of New Features Policy.

    Description

      At th emomnet the RunPortlet action that is used when embedding portlets into Confluence pages does not implement isUsingDefaultPortalConfig method. This causes the Filter Statistic Portlet to blow up when an invalid filter id is passed. The error looks like the following:

      2005-12-05 20:00:22,503 ERROR [com.atlassian.velocity.DefaultVelocityManager] MethodInvocationException occurred getting message body from Velocity: java.lang.UnsupportedOperationException: Cannot run with temporary portlet configuration.
      java.lang.UnsupportedOperationException: Cannot run with temporary portlet configuration.
              at com.atlassian.jira.web.action.portal.RunPortlet$ParameterPortletConfiguration.isUsingDefaultPortalConfig(RunPortlet.java:121)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:324)
              at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:267)
              at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:197)
              at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:175)
              at org.apache.velocity.runtime.parser.node.ASTReference.evaluate(ASTReference.java:307)
              at org.apache.velocity.runtime.parser.node.ASTNotNode.evaluate(ASTNotNode.java:45)
              at org.apache.velocity.runtime.parser.node.ASTExpression.evaluate(ASTExpression.java:45)
              at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:68)
              at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:55)
              at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:230)
              at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:89)
              at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:230)
              at org.apache.velocity.Template.merge(Template.java:256)
              at org.apache.velocity.app.VelocityEngine.mergeTemplate(VelocityEngine.java:450)
              at com.atlassian.velocity.DefaultVelocityManager.getEncodedBody(DefaultVelocityManager.java:76)
              at com.atlassian.velocity.DefaultVelocityManager.getEncodedBody(DefaultVelocityManager.java:60)
              at com.atlassian.velocity.DefaultVelocityManager.getEncodedBody(DefaultVelocityManager.java:55)
              at com.atlassian.jira.plugin.JiraResourcedModuleDescriptor.getHtml(JiraResourcedModuleDescriptor.java:88)
              at com.atlassian.jira.portal.PortletImpl.getViewHtml(PortletImpl.java:65)
              at org.apache.jsp.secure.views.runportlet_jsp._jspService(org.apache.jsp.secure.views.runportlet_jsp:94)
              at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
              at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
              at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
              at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
              at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
              at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
              at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
              at com.atlassian.jira.web.dispatcher.JiraServletDispatcher.service(JiraServletDispatcher.java:248)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.atlassian.jira.web.filters.AccessLogFilter.doFilter(AccessLogFilter.java:51)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119)
              at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55)
              at com.atlassian.jira.web.filters.SitemeshExcludePathFilter.doFilter(SitemeshExcludePathFilter.java:38)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.atlassian.seraph.filter.SecurityFilter.doFilter(SecurityFilter.java:182)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.atlassian.seraph.filter.LoginFilter.doFilter(LoginFilter.java:177)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.atlassian.util.profiling.filters.ProfilingFilter.doFilter(ProfilingFilter.java:132)
              at com.atlassian.jira.web.filters.ProfilingAndErrorFilter.doFilter(ProfilingAndErrorFilter.java:25)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.atlassian.jira.web.filters.ActionCleanupDelayFilter.doFilter(ActionCleanupDelayFilter.java:37)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.atlassian.johnson.filters.JohnsonFilter.doFilter(JohnsonFilter.java:91)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.atlassian.jira.web.filters.gzip.GzipFilter.doFilter(GzipFilter.java:72)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.atlassian.core.filters.AbstractEncodingFilter.doFilter(AbstractEncodingFilter.java:37)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
              at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
              at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
              at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
              at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
              at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
              at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
              at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
              at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
              at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
              at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
              at java.lang.Thread.run(Thread.java:534)
      

      The easiest way to fix this is to implement the method and retrun true, as this should be safe. Need to check wether it will work for all portlets.

      Attachments

        Issue Links

          Activity

            People

              mark@atlassian.com MarkC
              anton@atlassian.com AntonA
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: