Uploaded image for project: 'Confluence Data Center'
  1. Confluence Data Center
  2. CONFSERVER-22780

Removing a decoratorParam from default pagelayout leads to OOM

    XMLWordPrintable

Details

    • Bug
    • Resolution: Won't Fix
    • Medium
    • None
    • None
    • None
    • None

    Description

      The following is part of the default Page Layout in Confluence:

      #applyDecorator("root")
          #decoratorParam("sitemeshPage" $sitemeshPage)
          #decoratorParam("page" $page)
          #decoratorParam("context" "comments")
      #end
      

      If "#decoratorParam("context" "comments")" is taken out by editing the layout, accessing a page affected by this will cause Confluence to run out of memory. This can happen even if the custom layout is applied at a space level, meaning space admins can take down Confluence accidentally.

      The stack trace:

      2011-06-24 07:11:54,728 ERROR [http-8092-2] [[Standalone].[localhost].[/].[action]] log Servlet.service() for servlet action threw exception
       -- referer: http://localhost:8092/spaces/listdecorators.action?key=TEST | url: /display/TEST/Home | userName: admin
      java.lang.OutOfMemoryError: Java heap space
              at java.util.AbstractList.iterator(AbstractList.java:273)
              at com.opensymphony.xwork.util.CompoundRootAccessor.getProperty(CompoundRootAccessor.java:88)
              at ognl.OgnlRuntime.getProperty(OgnlRuntime.java:1603)
              at ognl.ASTProperty.getValueBody(ASTProperty.java:96)
              at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:171)
              at ognl.SimpleNode.getValue(SimpleNode.java:193)
              at ognl.Ognl.getValue(Ognl.java:333)
              at ognl.Ognl.getValue(Ognl.java:310)
              at com.opensymphony.xwork.util.OgnlValueStack.findValue(OgnlValueStack.java:141)
              at com.opensymphony.webwork.views.velocity.WebWorkVelocityContext.internalGet(WebWorkVelocityContext.java:72)
              at org.apache.velocity.context.AbstractContext.get(AbstractContext.java:193)
              at org.apache.velocity.context.InternalContextAdapterImpl.get(InternalContextAdapterImpl.java:286)
              at com.atlassian.confluence.velocity.context.ChainedVelocityContext.internalGet(ChainedVelocityContext.java:46)
              at org.apache.velocity.context.AbstractContext.get(AbstractContext.java:193)
              at org.apache.velocity.context.InternalContextAdapterImpl.get(InternalContextAdapterImpl.java:286)
              at org.apache.velocity.context.ChainedInternalContextAdapter.get(ChainedInternalContextAdapter.java:87)
              at org.apache.velocity.context.ProxyVMContext.get(ProxyVMContext.java:248)
              at com.atlassian.confluence.velocity.context.ChainedVelocityContext.internalGet(ChainedVelocityContext.java:46)
              at org.apache.velocity.context.AbstractContext.get(AbstractContext.java:193)
              at org.apache.velocity.context.InternalContextAdapterImpl.get(InternalContextAdapterImpl.java:286)
              at com.atlassian.confluence.velocity.context.ChainedVelocityContext.internalGet(ChainedVelocityContext.java:46)
              at org.apache.velocity.context.AbstractContext.get(AbstractContext.java:193)
              at org.apache.velocity.context.InternalContextAdapterImpl.get(InternalContextAdapterImpl.java:286)
              at org.apache.velocity.context.ChainedInternalContextAdapter.get(ChainedInternalContextAdapter.java:87)
              at org.apache.velocity.context.ProxyVMContext.get(ProxyVMContext.java:248)
              at com.atlassian.confluence.velocity.context.ChainedVelocityContext.internalContainsKey(ChainedVelocityContext.java:59)
              at org.apache.velocity.context.AbstractContext.containsKey(AbstractContext.java:217)
              at org.apache.velocity.context.InternalContextAdapterImpl.containsKey(InternalContextAdapterImpl.java:294)
              at com.atlassian.confluence.velocity.context.ChainedVelocityContext.internalGet(ChainedVelocityContext.java:46)
              at org.apache.velocity.context.AbstractContext.get(AbstractContext.java:193)
              at org.apache.velocity.context.InternalContextAdapterImpl.get(InternalContextAdapterImpl.java:286)
              at org.apache.velocity.context.ChainedInternalContextAdapter.get(ChainedInternalContextAdapter.java:87)
      

      Please see attached screenshot for a heap dump snapshot that shows millions of ognl.Evaluation objects.

      Attachments

        Activity

          People

            matt@atlassian.com Matt Ryall
            rchang Robert Chang
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: