core icon indicating copy to clipboard operation
core copied to clipboard

[Push Publishing] : Error when pushing Advanced Templates

Open jcastro-dotcms opened this issue 7 months ago • 1 comments

Problem Statement

An error is being logged in dotCMS when users try to push a Template under the following circumstances:

  • The Push Publishing bundle contains a version of the Template that doesn't exist in the receiving instance anymore.
  • The user is pushing an Advanced Template whose drawed_body column equals NULL.

Steps to Reproduce

  • Create an Advanced Template named My Template.
  • Add the Default Container in it.
  • Create a test HTML Page that uses such a Template.
  • Generate a bundle with that test page, and download it for Publishing with Everything and Dependencies.
  • Go back to the test Template you created, and do the following:
    • Re-name the Template to My Template v2 and publish it just to generate a new Inode.
    • Delete the previous Inode, which represents the version of the Template contained in the bundle.
  • Upload the previously generated bundle.
  • The following error is thrown:
14:43:43.282  ERROR handler.TemplateHandler - An error occurred when processing Template in '/Users/jcastro-2022/dotCMS/git/dev/core/misc-core/dotcms_assets/assets/bundles/aaa-01JXNAA9Z1QGZ5H838W30ARREP/live/demo.dotcms.com/a003b1b7a8325407a1e48a8d09b38e57.template.template.xml' with ID 'my template': a003b1b7a8325407a1e48a8d09b38e57
java.lang.IllegalArgumentException: argument "content" is null
	at com.fasterxml.jackson.databind.ObjectMapper._assertNotNull(ObjectMapper.java:5060) ~[?:?]
	at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3815) ~[?:?]
	at com.dotcms.rendering.velocity.viewtools.DotTemplateTool.getTemplateLayoutFromJSON(DotTemplateTool.java:248) ~[?:?]
	at com.dotcms.rendering.velocity.viewtools.DotTemplateTool.getTemplateLayout(DotTemplateTool.java:230) ~[?:?]
	at com.dotcms.enterprise.publishing.remote.handler.TemplateHandler.saveTemplate(TemplateHandler.java:187) ~[?:?]
	at com.dotcms.enterprise.publishing.remote.handler.TemplateHandler.handleTemplates(TemplateHandler.java:132) ~[?:?]
	at com.dotcms.enterprise.publishing.remote.handler.TemplateHandler.handle(TemplateHandler.java:87) ~[?:?]
	at com.dotcms.publisher.receiver.BundlePublisher.process(BundlePublisher.java:225) ~[?:?]
	at com.dotcms.rest.PushPublisherJob.processBundle(PushPublisherJob.java:40) ~[?:?]
	at com.dotcms.rest.BundleResource.uploadBundleSync(BundleResource.java:928) ~[?:?]
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]
	at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]
	at com.dotcms.rest.config.DotResourceMethodInvocationHandlerProvider$ProactiveClassLoaderHandler.invoke(DotResourceMethodInvocationHandlerProvider.java:70) ~[?:?]
	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:124) ~[?:?]
	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:167) ~[?:?]
	at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:176) ~[?:?]
	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:79) ~[?:?]
	at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:469) ~[?:?]
	at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:391) ~[?:?]
	at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:80) ~[?:?]
	at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:253) ~[?:?]
	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248) ~[?:?]
	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244) ~[?:?]
	at org.glassfish.jersey.internal.Errors.process(Errors.java:292) ~[?:?]
	at org.glassfish.jersey.internal.Errors.process(Errors.java:274) ~[?:?]
	at org.glassfish.jersey.internal.Errors.process(Errors.java:244) ~[?:?]
	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265) ~[?:?]
	at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:232) ~[?:?]
	at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:679) ~[?:?]
	at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:392) ~[?:?]
	at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346) ~[?:?]
	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:365) ~[?:?]
	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:318) ~[?:?]
	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[?:?]
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[?:?]
	at com.dotmarketing.filters.CMSFilter.doFilterInternal(CMSFilter.java:212) ~[?:?]
	at com.dotmarketing.filters.CMSFilter.doFilter(CMSFilter.java:62) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[?:?]
	at com.dotcms.filters.interceptor.AbstractWebInterceptorSupportFilter.doFilter(AbstractWebInterceptorSupportFilter.java:90) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[?:?]
	at com.dotcms.filters.interceptor.AbstractWebInterceptorSupportFilter.doFilter(AbstractWebInterceptorSupportFilter.java:90) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[?:?]
	at com.dotcms.visitor.filter.servlet.VisitorFilter.doFilter(VisitorFilter.java:81) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[?:?]
	at com.dotcms.vanityurl.filters.VanityURLFilter.doFilter(VanityURLFilter.java:107) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[?:?]
	at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176) ~[?:?]
	at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145) ~[?:?]
	at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92) ~[?:?]
	at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:389) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[?:?]
	at com.dotmarketing.filters.TimeMachineFilter.doFilter(TimeMachineFilter.java:149) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[?:?]
	at com.dotmarketing.filters.ThreadNameFilter.doFilter(ThreadNameFilter.java:88) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[?:?]
	at com.dotmarketing.filters.CookiesFilter.doFilter(CookiesFilter.java:53) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[?:?]
	at com.dotmarketing.filters.CharsetEncodingFilter.doFilter(CharsetEncodingFilter.java:99) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[?:?]
	at com.dotcms.filters.interceptor.AbstractWebInterceptorSupportFilter.doFilter(AbstractWebInterceptorSupportFilter.java:90) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[?:?]
	at org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:129) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[?:?]
	at com.dotcms.filters.NormalizationFilter.doFilter(NormalizationFilter.java:89) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[?:?]
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168) ~[?:?]
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[?:?]
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481) ~[?:?]
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130) ~[?:?]
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:670) ~[?:?]
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[?:?]
	at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:765) ~[?:?]
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[?:?]
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) ~[?:?]
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390) ~[?:?]
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[?:?]
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928) ~[?:?]
	at org.apache.tomcat.util.net.Nio2Endpoint$SocketProcessor.doRun(Nio2Endpoint.java:1732) ~[?:?]
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[?:?]
	at org.apache.tomcat.util.net.AbstractEndpoint.processSocket(AbstractEndpoint.java:1295) ~[?:?]
	at org.apache.tomcat.util.net.Nio2Endpoint.setSocketOptions(Nio2Endpoint.java:339) ~[?:?]
	at org.apache.tomcat.util.net.Nio2Endpoint$Nio2Acceptor.completed(Nio2Endpoint.java:479) ~[?:?]
	at org.apache.tomcat.util.net.Nio2Endpoint$Nio2Acceptor.completed(Nio2Endpoint.java:415) ~[?:?]
	at java.base/sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:129) ~[?:?]
	at java.base/sun.nio.ch.Invoker.invokeDirect(Invoker.java:160) ~[?:?]
	at java.base/sun.nio.ch.Invoker.invoke(Invoker.java:188) ~[?:?]
	at java.base/sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.onEvent(UnixAsynchronousServerSocketChannelImpl.java:194) ~[?:?]
	at java.base/sun.nio.ch.KQueuePort$EventHandlerTask.run(KQueuePort.java:312) ~[?:?]
	at java.base/sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:113) ~[?:?]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
	at java.base/java.lang.Thread.run(Thread.java:1583) [?:?]
14:43:43.301  ERROR receiver.BundlePublisher - Error publishing bundle with ID 'aaa-01JXNAA9Z1QGZ5H838W30ARREP.tar.gz': An error occurred when processing Template in '/Users/jcastro-2022/dotCMS/git/dev/core/misc-core/dotcms_assets/assets/bundles/aaa-01JXNAA9Z1QGZ5H838W30ARREP/live/demo.dotcms.com/a003b1b7a8325407a1e48a8d09b38e57.template.template.xml' with ID 'my template': a003b1b7a8325407a1e48a8d09b38e57
com.dotcms.publishing.DotPublishingException: An error occurred when processing Template in '/Users/jcastro-2022/dotCMS/git/dev/core/misc-core/dotcms_assets/assets/bundles/aaa-01JXNAA9Z1QGZ5H838W30ARREP/live/demo.dotcms.com/a003b1b7a8325407a1e48a8d09b38e57.template.template.xml' with ID 'my template': a003b1b7a8325407a1e48a8d09b38e57
	at com.dotcms.enterprise.publishing.remote.handler.TemplateHandler.handleTemplates(TemplateHandler.java:174) ~[?:?]
	at com.dotcms.enterprise.publishing.remote.handler.TemplateHandler.handle(TemplateHandler.java:87) ~[?:?]
	at com.dotcms.publisher.receiver.BundlePublisher.process(BundlePublisher.java:225) ~[?:?]
	at com.dotcms.rest.PushPublisherJob.processBundle(PushPublisherJob.java:40) ~[?:?]
	at com.dotcms.rest.BundleResource.uploadBundleSync(BundleResource.java:928) ~[?:?]
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]
	at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]
	at com.dotcms.rest.config.DotResourceMethodInvocationHandlerProvider$ProactiveClassLoaderHandler.invoke(DotResourceMethodInvocationHandlerProvider.java:70) ~[?:?]
	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:124) ~[?:?]
	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:167) ~[?:?]
	at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:176) ~[?:?]
	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:79) ~[?:?]
	at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:469) ~[?:?]
	at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:391) ~[?:?]
	at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:80) ~[?:?]
	at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:253) ~[?:?]
	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248) ~[?:?]
	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244) ~[?:?]
	at org.glassfish.jersey.internal.Errors.process(Errors.java:292) ~[?:?]
	at org.glassfish.jersey.internal.Errors.process(Errors.java:274) ~[?:?]
	at org.glassfish.jersey.internal.Errors.process(Errors.java:244) ~[?:?]
	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265) ~[?:?]
	at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:232) ~[?:?]
	at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:679) ~[?:?]
	at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:392) ~[?:?]
	at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346) ~[?:?]
	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:365) ~[?:?]
	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:318) ~[?:?]
	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[?:?]
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[?:?]
	at com.dotmarketing.filters.CMSFilter.doFilterInternal(CMSFilter.java:212) ~[?:?]
	at com.dotmarketing.filters.CMSFilter.doFilter(CMSFilter.java:62) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[?:?]
	at com.dotcms.filters.interceptor.AbstractWebInterceptorSupportFilter.doFilter(AbstractWebInterceptorSupportFilter.java:90) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[?:?]
	at com.dotcms.filters.interceptor.AbstractWebInterceptorSupportFilter.doFilter(AbstractWebInterceptorSupportFilter.java:90) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[?:?]
	at com.dotcms.visitor.filter.servlet.VisitorFilter.doFilter(VisitorFilter.java:81) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[?:?]
	at com.dotcms.vanityurl.filters.VanityURLFilter.doFilter(VanityURLFilter.java:107) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[?:?]
	at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176) ~[?:?]
	at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145) ~[?:?]
	at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92) ~[?:?]
	at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:389) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[?:?]
	at com.dotmarketing.filters.TimeMachineFilter.doFilter(TimeMachineFilter.java:149) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[?:?]
	at com.dotmarketing.filters.ThreadNameFilter.doFilter(ThreadNameFilter.java:88) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[?:?]
	at com.dotmarketing.filters.CookiesFilter.doFilter(CookiesFilter.java:53) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[?:?]
	at com.dotmarketing.filters.CharsetEncodingFilter.doFilter(CharsetEncodingFilter.java:99) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[?:?]
	at com.dotcms.filters.interceptor.AbstractWebInterceptorSupportFilter.doFilter(AbstractWebInterceptorSupportFilter.java:90) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[?:?]
	at org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:129) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[?:?]
	at com.dotcms.filters.NormalizationFilter.doFilter(NormalizationFilter.java:89) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[?:?]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[?:?]
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168) ~[?:?]
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[?:?]
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481) ~[?:?]
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130) ~[?:?]
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:670) ~[?:?]
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[?:?]
	at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:765) ~[?:?]
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[?:?]
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) ~[?:?]
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390) ~[?:?]
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[?:?]
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928) ~[?:?]
	at org.apache.tomcat.util.net.Nio2Endpoint$SocketProcessor.doRun(Nio2Endpoint.java:1732) ~[?:?]
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[?:?]
	at org.apache.tomcat.util.net.AbstractEndpoint.processSocket(AbstractEndpoint.java:1295) ~[?:?]
	at org.apache.tomcat.util.net.Nio2Endpoint.setSocketOptions(Nio2Endpoint.java:339) ~[?:?]
	at org.apache.tomcat.util.net.Nio2Endpoint$Nio2Acceptor.completed(Nio2Endpoint.java:479) ~[?:?]
	at org.apache.tomcat.util.net.Nio2Endpoint$Nio2Acceptor.completed(Nio2Endpoint.java:415) ~[?:?]
	at java.base/sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:129) ~[?:?]
	at java.base/sun.nio.ch.Invoker.invokeDirect(Invoker.java:160) ~[?:?]
	at java.base/sun.nio.ch.Invoker.invoke(Invoker.java:188) ~[?:?]
	at java.base/sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.onEvent(UnixAsynchronousServerSocketChannelImpl.java:194) ~[?:?]
	at java.base/sun.nio.ch.KQueuePort$EventHandlerTask.run(KQueuePort.java:312) ~[?:?]
	at java.base/sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:113) ~[?:?]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
	at java.base/java.lang.Thread.run(Thread.java:1583) [?:?]
Caused by: java.lang.IllegalArgumentException: argument "content" is null
	at com.fasterxml.jackson.databind.ObjectMapper._assertNotNull(ObjectMapper.java:5060) ~[?:?]
	at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3815) ~[?:?]
	at com.dotcms.rendering.velocity.viewtools.DotTemplateTool.getTemplateLayoutFromJSON(DotTemplateTool.java:248) ~[?:?]
	at com.dotcms.rendering.velocity.viewtools.DotTemplateTool.getTemplateLayout(DotTemplateTool.java:230) ~[?:?]
	at com.dotcms.enterprise.publishing.remote.handler.TemplateHandler.saveTemplate(TemplateHandler.java:187) ~[?:?]
	at com.dotcms.enterprise.publishing.remote.handler.TemplateHandler.handleTemplates(TemplateHandler.java:132) ~[?:?]
	... 103 more
14:43:43.331  ERROR Failed to publish because an error occurred:  - Error publishing bundle with ID 'aaa-01JXNAA9Z1QGZ5H838W30ARREP.tar.gz': com.dotcms.publishing.DotPublishingException: An error occurred when processing Template in '/Users/jcastro-2022/dotCMS/git/dev/core/misc-core/dotcms_assets/assets/bundles/aaa-01JXNAA9Z1QGZ5H838W30ARREP/live/demo.dotcms.com/a003b1b7a8325407a1e48a8d09b38e57.template.template.xml' with ID 'my template': a003b1b7a8325407a1e48a8d09b38e57

Acceptance Criteria

Not having a value for the drawed_body is expected, and dotCMS must not fail when a Template like that is being pushed.

dotCMS Version

dotCMS 24.12.27 LTS, and latest main.

Proposed Objective

Core Features

Proposed Priority

Priority 2 - Important

External Links... Slack Conversations, Support Tickets, Figma Designs, etc.

Reported via Support ticket:

  • https://helpdesk.dotcms.com/a/tickets/31536

Assumptions & Initiation Needs

No response

Quality Assurance Notes & Workarounds

No response

Sub-Tasks & Estimates

No response

jcastro-dotcms avatar Jun 13 '25 20:06 jcastro-dotcms

PRs:

  • https://github.com/dotCMS/core/pull/32429

github-actions[bot] avatar Jun 16 '25 20:06 github-actions[bot]

QA Passed Advanced templates with drawed_body field set to null are now push published as expected

[19/06/25 16:38:13:923 CST]  INFO class com.dotcms.enterprise.publishing.remote.handler.TemplateHandler : [BundleID: 01JY55F7E2NWV1DZG0PSHG83X1.tar.gz] Template publish success, ID: cf30ef2d3751229346b87d3e35fc78b2, Inode: b2b52777-f085-49de-86bc-f52c1f9012c4, Name: Advanced Test Template -   

dsolistorres avatar Jun 19 '25 22:06 dsolistorres