Details
-
Bug
-
Resolution: Workaround exists
-
Neutral
-
None
-
3.3
-
None
-
None
Description
When using a theme it's required that you have an imaging node present even if you do not plan to use the variations feature. Not having the node leads to a stack overflow.
Example:
[#assign imgLink = imgfn.getImageVariationLinkFromBinary(binaryNode,"original") /] <img src="${imgLink}"/>
Leads to:
java method "info.magnolia.imaging.functions.ImagingTemplatingFunctions.getImageVariationLinkFromBinary(javax.jcr.Node, String)" threw an exception when invoked on info.magnolia.imaging.functions.ImagingTemplatingFunctions object "info.magnolia.imaging.functions.ImagingTemplatingFunctions@453deb93"; see cause exception in the Java stack trace.
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign imgLink = imgfn.getImageVaria... [in template "frontend/templates/components/contactperson/contactperson.ftl" at line 6, column 5]
----
Java stack trace (for programmers):
----
freemarker.core._TemplateModelException: [... Exception message was already printed; see it above ...]
at freemarker.ext.beans._MethodUtil.newInvocationTemplateModelException(_MethodUtil.java:289)
at freemarker.ext.beans._MethodUtil.newInvocationTemplateModelException(_MethodUtil.java:261)
at freemarker.ext.beans.OverloadedMethodsModel.exec(OverloadedMethodsModel.java:65)
at freemarker.core.MethodCall._eval(MethodCall.java:65)
at freemarker.core.Expression.eval(Expression.java:83)
at freemarker.core.Assignment.accept(Assignment.java:134)
at freemarker.core.Environment.visit(Environment.java:366)
at freemarker.core.Environment.visitAndTransform(Environment.java:495)
at freemarker.core.CompressedBlock.accept(CompressedBlock.java:42)
at freemarker.core.Environment.visit(Environment.java:330)
at freemarker.core.Environment.process(Environment.java:309)
at freemarker.template.Template.process(Template.java:384)
at info.magnolia.freemarker.FreemarkerHelper.render(FreemarkerHelper.java:171)
at info.magnolia.rendering.renderer.FreemarkerRenderer.onRender(FreemarkerRenderer.java:99)
at info.magnolia.rendering.renderer.AbstractRenderer.render(AbstractRenderer.java:166)
at sun.reflect.GeneratedMethodAccessor337.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.thoughtworks.proxy.kit.SimpleInvoker.invoke(SimpleInvoker.java:42)
at com.thoughtworks.proxy.kit.PrivateInvoker.invoke(PrivateInvoker.java:43)
at com.thoughtworks.proxy.toys.decorate.DecoratingInvoker.invoke(DecoratingInvoker.java:61)
at com.thoughtworks.proxy.factory.AbstractProxyFactory$CoincidentalInvocationHandlerAdapter.invoke(AbstractProxyFactory.java:96)
at info.magnolia.rendering.renderer.FreemarkerRenderer$$EnhancerByCGLIB$$fd0ffdb5.render(<generated>)
at info.magnolia.rendering.engine.DefaultRenderingEngine.render(DefaultRenderingEngine.java:119)
at info.magnolia.rendering.engine.DefaultRenderingEngine$$EnhancerByCGLIB$$cab81fc3.render(<generated>)
at info.magnolia.templating.elements.ComponentElement.begin(ComponentElement.java:144)
at info.magnolia.templating.renderers.NoScriptRenderer.onRender(NoScriptRenderer.java:103)
at info.magnolia.templating.renderers.NoScriptRenderer.render(NoScriptRenderer.java:81)
at info.magnolia.rendering.engine.DefaultRenderingEngine.render(DefaultRenderingEngine.java:119)
at info.magnolia.rendering.engine.DefaultRenderingEngine$$EnhancerByCGLIB$$cab81fc3.render(<generated>)
at info.magnolia.templating.elements.AreaElement.end(AreaElement.java:332)
at info.magnolia.templating.freemarker.AbstractDirective.execute(AbstractDirective.java:97)
at freemarker.core.Environment.visit(Environment.java:445)
at freemarker.core.UnifiedCall.accept(UnifiedCall.java:101)
at freemarker.core.Environment.visit(Environment.java:330)
at freemarker.core.Environment.visit(Environment.java:336)
at freemarker.core.Environment.visit(Environment.java:336)
at freemarker.core.Environment.process(Environment.java:309)
at freemarker.template.Template.process(Template.java:384)
at info.magnolia.freemarker.FreemarkerHelper.render(FreemarkerHelper.java:171)
at info.magnolia.rendering.renderer.FreemarkerRenderer.onRender(FreemarkerRenderer.java:99)
at info.magnolia.rendering.renderer.AbstractRenderer.render(AbstractRenderer.java:166)
at sun.reflect.GeneratedMethodAccessor337.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.thoughtworks.proxy.kit.SimpleInvoker.invoke(SimpleInvoker.java:42)
at com.thoughtworks.proxy.kit.PrivateInvoker.invoke(PrivateInvoker.java:43)
at com.thoughtworks.proxy.toys.decorate.DecoratingInvoker.invoke(DecoratingInvoker.java:61)
at com.thoughtworks.proxy.factory.AbstractProxyFactory$CoincidentalInvocationHandlerAdapter.invoke(AbstractProxyFactory.java:96)
at info.magnolia.rendering.renderer.FreemarkerRenderer$$EnhancerByCGLIB$$fd0ffdb5.render(<generated>)
at info.magnolia.module.site.renderer.SiteAwareRendererWrapper.render(SiteAwareRendererWrapper.java:92)
at info.magnolia.rendering.engine.DefaultRenderingEngine.render(DefaultRenderingEngine.java:119)
at info.magnolia.rendering.engine.DefaultRenderingEngine$$EnhancerByCGLIB$$cab81fc3.render(<generated>)
at info.magnolia.rendering.engine.RenderingFilter.render(RenderingFilter.java:195)
at info.magnolia.rendering.engine.RenderingFilter.handleTemplateRequest(RenderingFilter.java:140)
at info.magnolia.rendering.engine.RenderingFilter.doFilter(RenderingFilter.java:94)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.rendering.model.ModelExecutionFilter.doFilter(ModelExecutionFilter.java:109)
at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.personalization.filter.VariantResolverFilter.doFilter(VariantResolverFilter.java:131)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.cms.filters.AggregatorFilter.doFilter(AggregatorFilter.java:135)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:57)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.cms.filters.RepositoryMappingFilter.doFilter(RepositoryMappingFilter.java:122)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:65)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:74)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:65)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.virtualuri.VirtualUriFilter.doFilter(VirtualUriFilter.java:98)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.module.cache.executor.Bypass.processCacheRequest(Bypass.java:58)
at info.magnolia.module.cache.executor.CompositeExecutor.processCacheRequest(CompositeExecutor.java:67)
at info.magnolia.module.cache.filter.CacheFilter.doFilter(CacheFilter.java:220)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.cms.i18n.I18nContentSupportFilter.doFilter(I18nContentSupportFilter.java:89)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.cms.filters.RangeSupportFilter.doFilter(RangeSupportFilter.java:77)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:57)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
at info.magnolia.cms.security.SecurityCallbackFilter.doFilter(SecurityCallbackFilter.java:84)
at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.cms.security.LogoutFilter.doFilter(LogoutFilter.java:94)
at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.module.site.filters.SiteMergeFilter.doFilter(SiteMergeFilter.java:119)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.cms.filters.MultiChannelFilter.doFilter(MultiChannelFilter.java:83)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.module.cache.filter.GZipFilter.doFilter(GZipFilter.java:73)
at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
at info.magnolia.cms.security.auth.login.LoginFilter.doFilter(LoginFilter.java:127)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.enterprise.registration.RegistrationFilter.doFilter(RegistrationFilter.java:64)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.cms.filters.UnicodeNormalizationFilter.doFilter(UnicodeNormalizationFilter.java:89)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.cms.filters.CosMultipartRequestFilter.doFilter(CosMultipartRequestFilter.java:111)
at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.personalization.preview.filter.PreviewFilter.doFilter(PreviewFilter.java:92)
at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.personalization.trait.AbstractTraitDetectorFilter.doFilter(AbstractTraitDetectorFilter.java:80)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.personalization.trait.AbstractTraitDetectorFilter.doFilter(AbstractTraitDetectorFilter.java:80)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.personalization.trait.AbstractTraitDetectorFilter.doFilter(AbstractTraitDetectorFilter.java:80)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.personalization.trait.AbstractTraitDetectorFilter.doFilter(AbstractTraitDetectorFilter.java:80)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.cms.filters.ContentTypeFilter.doFilter(ContentTypeFilter.java:155)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.cms.filters.ContextFilter.doFilter(ContextFilter.java:128)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:65)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.SafeDestroyMgnlFilterWrapper.doFilter(SafeDestroyMgnlFilterWrapper.java:107)
at info.magnolia.cms.filters.MgnlFilterDispatcher.doDispatch(MgnlFilterDispatcher.java:67)
at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:110)
at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:800)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1471)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.StackOverflowError
at java.util.HashMap.hash(HashMap.java:339)
at java.util.LinkedHashMap.get(LinkedHashMap.java:440)
at java.util.Collections$UnmodifiableMap.get(Collections.java:1454)
at com.google.inject.internal.InheritingState.getExplicitBinding(InheritingState.java:74)
at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:216)
at com.google.inject.internal.InjectorImpl.getProviderOrThrow(InjectorImpl.java:1040)
at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:1071)
at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:1034)
at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1086)
at info.magnolia.objectfactory.guice.GuiceComponentProvider.getComponent(GuiceComponentProvider.java:109)
at info.magnolia.objectfactory.Components.getComponent(Components.java:107)
at info.magnolia.cms.core.version.MgnlVersioningNodeWrapper.<init>(MgnlVersioningNodeWrapper.java:69)
at info.magnolia.cms.core.version.MgnlVersioningContentDecorator.wrapNode(MgnlVersioningContentDecorator.java:49)
at info.magnolia.jcr.decoration.ContentDecoratorPropertyWrapper.wrapNode(ContentDecoratorPropertyWrapper.java:104)
at info.magnolia.jcr.decoration.ContentDecoratorPropertyWrapper.getParent(ContentDecoratorPropertyWrapper.java:78)
at info.magnolia.jcr.wrapper.DelegatePropertyWrapper.getParent(DelegatePropertyWrapper.java:252)
at info.magnolia.jcr.decoration.ContentDecoratorPropertyWrapper.getParent(ContentDecoratorPropertyWrapper.java:78)
at info.magnolia.jcr.wrapper.DelegatePropertyWrapper.getParent(DelegatePropertyWrapper.java:252)
at info.magnolia.jcr.decoration.ContentDecoratorPropertyWrapper.getParent(ContentDecoratorPropertyWrapper.java:78)
at info.magnolia.jcr.wrapper.DelegatePropertyWrapper.getParent(DelegatePropertyWrapper.java:252)
at info.magnolia.jcr.decoration.ContentDecoratorPropertyWrapper.getParent(ContentDecoratorPropertyWrapper.java:78)
at info.magnolia.templating.imaging.support.ThemeDelegatingImagingSupport.getImagingSupport(ThemeDelegatingImagingSupport.java:96)
at info.magnolia.templating.imaging.support.ThemeDelegatingImagingSupport.createLink(ThemeDelegatingImagingSupport.java:82)
at info.magnolia.templating.imaging.support.ThemeDelegatingImagingSupport.createLink(ThemeDelegatingImagingSupport.java:82)
at info.magnolia.templating.imaging.support.ThemeDelegatingImagingSupport.createLink(ThemeDelegatingImagingSupport.java:82)
It would be helpful to have some indication this configuration is missing since it seems to be required even for "original". For example, "Check your theme imaging configuration" or "You must have a theme configuration to use the imaging templating functions"
Workaround
Configure the proper imaging support class. For example:
cssFiles: #CSS files configuration jsFiles: #JavaScript files configuration imaging: class: info.magnolia.templating.imaging.VariationAwareImagingSupport
Checklists
Acceptance criteria
Attachments
Issue Links
- is related to
-
MGNLSITE-100 Missing Imaging configuration can lead to exceptions
-
- Closed
-