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.