[MGNLGS-75] can't generate google-sitemap when /server/i18n/content/enabled = true Created: 26/Feb/14  Updated: 15/Mar/21  Resolved: 15/Mar/21

Status: Closed
Project: Google Sitemap (closed)
Component/s: None
Affects Version/s: 2.0.2
Fix Version/s: None

Type: Bug Priority: Neutral
Reporter: Masao Suda Assignee: Unassigned
Resolution: Obsolete Votes: 4
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Magnolia Community 5.2.2


Attachments: Java Source File CESiteMapService.java     Text File SiteMapService.java     PNG File nullpointerException-google-sitemap.png    
Issue Links:
duplicate
is duplicated by MGNLGS-95 Sitemap fails with NPE when i18n cont... Closed
Template:
Acceptance criteria:
Empty
Date of First Response:

 Description   

When /server/i18n/content/enabled=true, google-sitemap creation failed.

Tomcat log

2014-02-26 17:39:41,654 INFO  gnolia.module.googlesitemap.service.SiteMapService: Requested siteMap info's for EDIT based on the following root: /index2
2014-02-26 17:39:41,656 ERROR freemarker.runtime                                : Template processing error: "Method public java.lang.String info.magnolia.module.googlesitemap.model.SiteMapModel.getXML() threw an exception when invoked on info.magnolia.module.googlesitemap.model.SiteMapModel@547dd38d"

Method public java.lang.String info.magnolia.module.googlesitemap.model.SiteMapModel.getXML() threw an exception when invoked on info.magnolia.module.googlesitemap.model.SiteMapModel@547dd38d
The problematic instruction:
----------
==> ${model.getXML()!} [on line 2, column 1 in sitemap/pages/mainXml.ftl]
 in include "/sitemap/pages/mainXml.ftl" [on line 6, column 3 in sitemap/pages/main.ftl]
----------

Java backtrace for programmers:
----------
freemarker.template.TemplateModelException: Method public java.lang.String info.magnolia.module.googlesitemap.model.SiteMapModel.getXML() threw an exception when invoked on info.magnolia.module.googlesitemap.model.SiteMapModel@547dd38d
        at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:130)
        at freemarker.core.MethodCall._getAsTemplateModel(MethodCall.java:93)
        at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
        at freemarker.core.DefaultToExpression._getAsTemplateModel(DefaultToExpression.java:100)
        at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
        at freemarker.core.Expression.getStringValue(Expression.java:93)
        at freemarker.core.DollarVariable.accept(DollarVariable.java:76)
        at freemarker.core.Environment.visit(Environment.java:221)
        at freemarker.core.MixedContent.accept(MixedContent.java:92)
        at freemarker.core.Environment.visit(Environment.java:221)
        at freemarker.core.Environment.include(Environment.java:1508)
        at freemarker.core.Include.accept(Include.java:169)
        at freemarker.core.Environment.visit(Environment.java:221)
        at freemarker.core.IfBlock.accept(IfBlock.java:82)
        at freemarker.core.Environment.visit(Environment.java:221)
        at freemarker.core.MixedContent.accept(MixedContent.java:92)
        at freemarker.core.Environment.visit(Environment.java:221)
        at freemarker.core.Environment.process(Environment.java:199)
        at freemarker.template.Template.process(Template.java:237)
        at info.magnolia.freemarker.FreemarkerHelper.render(FreemarkerHelper.java:153)
        at info.magnolia.rendering.renderer.FreemarkerRenderer.onRender(FreemarkerRenderer.java:96)
        at info.magnolia.rendering.renderer.AbstractRenderer.render(AbstractRenderer.java:151)
        at info.magnolia.rendering.engine.DefaultRenderingEngine.render(DefaultRenderingEngine.java:106)
        at info.magnolia.rendering.engine.DefaultRenderingEngine$$EnhancerByCGLIB$$8b53d72b.render(<generated>)
        at info.magnolia.rendering.engine.RenderingFilter.render(RenderingFilter.java:204)
        at info.magnolia.rendering.engine.RenderingFilter.handleTemplateRequest(RenderingFilter.java:138)
        at info.magnolia.rendering.engine.RenderingFilter.doFilter(RenderingFilter.java:91)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
        at info.magnolia.rendering.model.ModelExecutionFilter.doFilter(ModelExecutionFilter.java:101)
        at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:58)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
        at info.magnolia.cms.filters.AggregatorFilter.doFilter(AggregatorFilter.java:103)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
        at info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:57)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
        at info.magnolia.cms.filters.RepositoryMappingFilter.doFilter(RepositoryMappingFilter.java:100)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
        at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:65)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:74)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
        at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:65)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
        at info.magnolia.cms.filters.VirtualUriFilter.doFilter(VirtualUriFilter.java:68)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
        at info.magnolia.module.cache.executor.Bypass.processCacheRequest(Bypass.java:58)
        at info.magnolia.module.cache.executor.CompositeExecutor.processCacheRequest(CompositeExecutor.java:66)
        at info.magnolia.module.cache.filter.CacheFilter.doFilter(CacheFilter.java:153)
        at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:58)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
        at info.magnolia.cms.i18n.I18nContentSupportFilter.doFilter(I18nContentSupportFilter.java:73)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
        at info.magnolia.cms.filters.RangeSupportFilter.doFilter(RangeSupportFilter.java:84)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
        at info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:57)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
        at info.magnolia.cms.security.SecurityCallbackFilter.doFilter(SecurityCallbackFilter.java:83)
        at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:58)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
        at info.magnolia.cms.security.LogoutFilter.doFilter(LogoutFilter.java:93)
        at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:58)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
        at info.magnolia.module.templatingkit.filters.SiteMergeFilter.doFilter(SiteMergeFilter.java:106)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
        at info.magnolia.cms.filters.MultiChannelFilter.doFilter(MultiChannelFilter.java:82)
        at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:58)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
        at info.magnolia.cms.security.auth.login.LoginFilter.doFilter(LoginFilter.java:104)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
        at info.magnolia.cms.filters.CosMultipartRequestFilter.doFilter(CosMultipartRequestFilter.java:89)
        at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:58)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
        at info.magnolia.module.devicedetection.filter.DeviceDetectionFilter.doFilter(DeviceDetectionFilter.java:71)
        at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:58)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
        at info.magnolia.cms.filters.ContentTypeFilter.doFilter(ContentTypeFilter.java:103)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
        at info.magnolia.cms.filters.ContextFilter.doFilter(ContextFilter.java:129)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
        at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:65)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
        at info.magnolia.cms.filters.SafeDestroyMgnlFilterWrapper.doFilter(SafeDestroyMgnlFilterWrapper.java:106)
        at info.magnolia.cms.filters.MgnlFilterDispatcher.doDispatch(MgnlFilterDispatcher.java:66)
        at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:107)
        at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:93)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.NullPointerException
        at info.magnolia.module.googlesitemap.service.SiteMapService.feedSiteMapBeans(SiteMapService.java:242)
        at info.magnolia.module.googlesitemap.service.SiteMapService.getSiteMapBeanForSite(SiteMapService.java:154)
        at info.magnolia.module.googlesitemap.service.SiteMapService.getSiteMapBeans(SiteMapService.java:438)
        at info.magnolia.module.googlesitemap.service.SiteMapXMLUtilImpl.generateSiteMapXML(SiteMapXMLUtilImpl.java:90)
        at info.magnolia.module.googlesitemap.model.SiteMapModel.getXML(SiteMapModel.java:103)
        at sun.reflect.GeneratedMethodAccessor536.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:866)
        at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:106)
        ... 127 more


 Comments   
Comment by Masao Suda [ 27/Feb/14 ]

quick fix.

Comment by Matteo Pelucco [ 11/Aug/15 ]

Here another tested patch, for google-sitemap-2.2.2

Do not forget to inject the patched CE service in your module descriptor, "main" part:

<component>
<type>info.magnolia.module.googlesitemap.service.SiteMapService</type>
<implementation>my.project.magnolia.patches.CESiteMapService</implementation>
<scope>singleton</scope>
</component>

Comment by Silvan Schaad [ 12/Aug/15 ]

We have google-sitemap-2.2.3 and google-sitemap-2.2.4 tested and we have the same errors. @Matteo, do you have a compiled jar with the patch for us?

Comment by Matteo Pelucco [ 12/Aug/15 ]

unfortunately not ready..

Generated at Mon Feb 12 02:06:10 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.