One can easily break the page with the Reference component.
Steps to Reproduce
Add new page,
Add Reference component,
Point it to the same page.
Expected Result: no big deal, system handles it somehow.
Actual Result: java.lang.OutOfMemoryError:
Java heap space (500)
The requested URL /content/test/pages/index.html resulted in an error in /apps/pagerendervue/structure/page/page.html.
Exception:
java.lang.OutOfMemoryError: Java heap space
at java.base/java.util.Arrays.copyOfRange(Arrays.java:4030)
at java.base/java.lang.StringLatin1.newString(StringLatin1.java:715)
at java.base/java.lang.StringBuilder.toString(StringBuilder.java:448)
at ch.qos.logback.classic.pattern.ThrowableProxyConverter.throwableProxyToString(ThrowableProxyConverter.java:153)
at ch.qos.logback.classic.pattern.ThrowableProxyConverter.convert(ThrowableProxyConverter.java:145)
at ch.qos.logback.classic.pattern.ThrowableProxyConverter.convert(ThrowableProxyConverter.java:35)
at ch.qos.logback.core.pattern.FormattingConverter.write(FormattingConverter.java:36)
at ch.qos.logback.core.pattern.PatternLayoutBase.writeLoopOnConverters(PatternLayoutBase.java:115)
at ch.qos.logback.classic.PatternLayout.doLayout(PatternLayout.java:141)
at ch.qos.logback.classic.PatternLayout.doLayout(PatternLayout.java:39)
at org.apache.sling.commons.log.logback.internal.util.LoggerSpecificEncoder.encode(LoggerSpecificEncoder.java:43)
at org.apache.sling.commons.log.logback.internal.util.LoggerSpecificEncoder.encode(LoggerSpecificEncoder.java:33)
at ch.qos.logback.core.OutputStreamAppender.subAppend(OutputStreamAppender.java:230)
at ch.qos.logback.core.rolling.RollingFileAppender.subAppend(RollingFileAppender.java:235)
at ch.qos.logback.core.OutputStreamAppender.append(OutputStreamAppender.java:102)
at ch.qos.logback.core.UnsynchronizedAppenderBase.doAppend(UnsynchronizedAppenderBase.java:84)
at ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:51)
at ch.qos.logback.classic.Logger.appendLoopOnAppenders(Logger.java:270)
at ch.qos.logback.classic.Logger.callAppenders(Logger.java:257)
at ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:421)
at ch.qos.logback.classic.Logger.filterAndLog_0_Or3Plus(Logger.java:383)
at ch.qos.logback.classic.Logger.error(Logger.java:538)
at org.apache.sling.scripting.sightly.render.ObjectModel.invokeBeanMethod(ObjectModel.java:420)
at org.apache.sling.scripting.sightly.render.ObjectModel.resolveProperty(ObjectModel.java:128)
at org.apache.sling.scripting.sightly.render.AbstractRuntimeObjectModel.getProperty(AbstractRuntimeObjectModel.java:138)
at org.apache.sling.scripting.sightly.impl.engine.runtime.SlingRuntimeObjectModel.getProperty(SlingRuntimeObjectModel.java:32)
at org.apache.sling.scripting.sightly.render.AbstractRuntimeObjectModel.resolveProperty(AbstractRuntimeObjectModel.java:74)
at org.apache.sling.scripting.sightly.apps.pagerendervue.structure.page.page__002e__html.render(page__002e__html.java:760)
at org.apache.sling.scripting.sightly.render.RenderUnit.render(RenderUnit.java:53)
at org.apache.sling.scripting.sightly.impl.engine.SightlyCompiledScript.eval(SightlyCompiledScript.java:60)
at org.apache.sling.scripting.core.impl.DefaultSlingScript.call(DefaultSlingScript.java:386)
at org.apache.sling.scripting.core.impl.DefaultSlingScript.eval(DefaultSlingScript.java:184)
Request Progress:
0 TIMER_START{Request Processing}
2 COMMENT timer_end format is {<elapsed microseconds>,<timer name>} <optional message>
9 LOG Method=GET, PathInfo=null
10 TIMER_START{handleSecurity}
1812 TIMER_END{1800,handleSecurity} authenticator org.apache.sling.auth.core.impl.SlingAuthenticator@386a8414 returns true
6237 TIMER_START{ResourceResolution}
6462 TIMER_END{223,ResourceResolution} URI=/content/test/pages/index.html resolves to Resource=JcrNodeResource, type=per:Page, superType=null, path=/content/test/pages/index
6469 LOG Resource Path Info: SlingRequestPathInfo: path='/content/test/pages/index', selectorString='null', extension='html', suffix='null'
6469 TIMER_START{ServletResolution}
6473 TIMER_START{resolveServlet(/content/test/pages/index)}
6491 TIMER_END{17,resolveServlet(/content/test/pages/index)} Using servlet /apps/per/Page/Page.html
6493 TIMER_END{23,ServletResolution} URI=/content/test/pages/index.html handled by Servlet=/apps/per/Page/Page.html
6496 LOG Applying Requestfilters
6503 LOG Calling filter: org.apache.sling.i18n.impl.I18NFilter
6507 LOG Calling filter: org.apache.sling.engine.impl.debug.RequestProgressTrackerLogFilter
6521 LOG Applying Componentfilters
6528 TIMER_START{/apps/per/Page/Page.html#0}
7205 LOG Including resource JcrNodeResource, type=themecleanflex/components/page, superType=null, path=/content/test/pages/index/jcr:content (SlingRequestPathInfo: path='/content/test/pages/index/jcr:content', selectorString='null', extension='html', suffix='null')
7212 TIMER_START{resolveServlet(/content/test/pages/index/jcr:content)}
7234 TIMER_END{20,resolveServlet(/content/test/pages/index/jcr:content)} Using servlet /apps/pagerendervue/structure/page/page.html
7238 LOG Applying Includefilters
7247 TIMER_START{/apps/pagerendervue/structure/page/page.html#1}
5559711 TIMER_END{5552459,/apps/pagerendervue/structure/page/page.html#1}
5560230 TIMER_END{5553699,/apps/per/Page/Page.html#0}
5561356 LOG Filter timing: filter=org.apache.sling.engine.impl.debug.RequestProgressTrackerLogFilter, inner=5,554, total=5,554, outer=0
5561369 LOG Filter timing: filter=org.apache.sling.i18n.impl.I18NFilter, inner=5,554, total=5,554, outer=0
5563728 LOG Applying Error filters
5563742 LOG Calling filter: org.apache.sling.i18n.impl.I18NFilter
5563829 TIMER_START{handleError:throwable=java.lang.OutOfMemoryError}
5565001 TIMER_END{1171,handleError:throwable=java.lang.OutOfMemoryError} Using handler org.apache.sling.servlets.resolver.internal.defaults.DefaultErrorHandlerServlet
5567801 TIMER_END{5567799,Request Processing} Dumping SlingRequestProgressTracker Entries
ApacheSling/2.7 (jetty/9.4.28.v20200408, OpenJDK 64-Bit Server VM 11.0.8, Linux 4.19.76-linuxkit amd64)
One can easily break the page with the Reference component.
Steps to Reproduce
Expected Result: no big deal, system handles it somehow. Actual Result:
java.lang.OutOfMemoryError
: