When Confluence 4.x came out, it introduced recommended updates. Popular pages sent to your inbox. Unfortunately, this optional feature was enabled by default for all users and it ultimately spammed our entire user base. The recommended approach to disable that feature was to disable the daily-summary-email plug-in. It worked.
And... daily updates emails were still sent out (not the popular pages email).
We just upgraded to Confluence 5.3 and our daily updates emails have stopped sending. The error indicates that a template from the daily-summary-email plug-in is required. However, we have that disabled to avoid the popular pages email spamming.
How can we get our daily updates emails working again and still leave the popular pages email feature disabled?
2013-11-19 00:00:44,353 ERROR [scheduler_Worker-5] [confluence.mail.jobs.DefaultDailyReportManager] queueDailyReportEmail Failed to create daily report for user hjsimpson com.atlassian.confluence.renderer.template.TemplateRenderingException: Unable to compile Soy template in plugin module: com.atlassian.confluence.plugins.confluence-daily-summary-email:chrome-template at com.atlassian.confluence.plugins.soy.ConfluenceSoyTemplateRenderer.renderTo(ConfluenceSoyTemplateRenderer.java:42) at com.atlassian.confluence.renderer.template.DelegatingTemplateRenderer.renderTo(DelegatingTemplateRenderer.java:44) at com.atlassian.confluence.renderer.template.DelegatingTemplateRenderer.renderTo(DelegatingTemplateRenderer.java:25) at com.atlassian.confluence.mail.template.AbstractMailNotificationQueueItem.renderTemplate(AbstractMailNotificationQueueItem.java:310) at com.atlassian.confluence.mail.template.PreRenderedMailNotificationQueueItem.access$201(PreRenderedMailNotificationQueueItem.java:47) at com.atlassian.confluence.mail.template.PreRenderedMailNotificationQueueItem$2.call(PreRenderedMailNotificationQueueItem.java:337) at com.atlassian.confluence.mail.template.PreRenderedMailNotificationQueueItem$2.call(PreRenderedMailNotificationQueueItem.java:333) at com.atlassian.confluence.user.AuthenticatedUserImpersonator$2.call(AuthenticatedUserImpersonator.java:134) at com.atlassian.confluence.user.AuthenticatedUserImpersonator$1.call(AuthenticatedUserImpersonator.java:113) at com.atlassian.confluence.user.AuthenticatedUserImpersonator.asUser(AuthenticatedUserImpersonator.java:89) at com.atlassian.confluence.mail.template.PreRenderedMailNotificationQueueItem.renderTemplateForRecipient(PreRenderedMailNotificationQueueItem.java:332) at com.atlassian.confluence.mail.template.PreRenderedMailNotificationQueueItem.renderTemplate(PreRenderedMailNotificationQueueItem.java:287) at com.atlassian.confluence.mail.template.AbstractMailNotificationQueueItem.renderLegacyTemplate(AbstractMailNotificationQueueItem.java:303) at com.atlassian.confluence.mail.template.AbstractMailNotificationQueueItem.preRenderBody(AbstractMailNotificationQueueItem.java:223) at com.atlassian.confluence.mail.template.PreRenderedMailNotificationQueueItem$Builder.render(PreRenderedMailNotificationQueueItem.java:498) at com.atlassian.confluence.mail.jobs.DefaultDailyReportManager.queueDailyReportEmail(DefaultDailyReportManager.java:134) at com.atlassian.confluence.mail.jobs.DefaultDailyReportManager.generateDailyReports(DefaultDailyReportManager.java:92) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149) at com.atlassian.spring.interceptors.SpringProfilingInterceptor.invoke(SpringProfilingInterceptor.java:16) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at com.sun.proxy.$Proxy92.generateDailyReports(Unknown Source) at com.atlassian.confluence.mail.jobs.DailyReportJob.doExecute(DailyReportJob.java:29) at com.atlassian.quartz.jobs.AbstractJob.executeInternal(AbstractJob.java:88) at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86) at com.atlassian.confluence.setup.quartz.DelegatingClusterAwareQuartzJobBean.executeJob(DelegatingClusterAwareQuartzJobBean.java:16) at com.atlassian.confluence.setup.quartz.AbstractClusterAwareQuartzJobBean.surroundJobExecutionWithLogging(AbstractClusterAwareQuartzJobBean.java:64) at com.atlassian.confluence.setup.quartz.AbstractClusterAwareQuartzJobBean.executeInternal(AbstractClusterAwareQuartzJobBean.java:46) at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86) at org.quartz.core.JobRunShell.run(JobRunShell.java:199) at com.atlassian.confluence.schedule.quartz.ConfluenceQuartzThreadPool$1.run(ConfluenceQuartzThreadPool.java:20) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549) Caused by: com.atlassian.soy.renderer.SoyException: Unable to compile Soy template in plugin module: com.atlassian.confluence.plugins.confluence-daily-summary-email:chrome-template at com.atlassian.soy.impl.DefaultSoyManager.render(DefaultSoyManager.java:123) at com.atlassian.soy.impl.SoyTemplateRendererImpl.render(SoyTemplateRendererImpl.java:40) at sun.reflect.GeneratedMethodAccessor732.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307) at org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:58) at org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:62) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131) at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.osgi.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:56) at org.springframework.osgi.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:39) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.osgi.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:59) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131) at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at com.sun.proxy.$Proxy847.render(Unknown Source) at com.atlassian.confluence.plugins.soy.ConfluenceSoyTemplateRenderer.renderTo(ConfluenceSoyTemplateRenderer.java:38) ... 39 more Caused by: com.google.common.util.concurrent.UncheckedExecutionException: java.lang.IllegalStateException: Required plugin module com.atlassian.confluence.plugins.confluence-daily-summary-email:chrome-template was either missing or disabled at com.google.common.cache.CustomConcurrentHashMap$ComputedUncheckedException.get(CustomConcurrentHashMap.java:3305) at com.google.common.cache.CustomConcurrentHashMap$ComputingValueReference.compute(CustomConcurrentHashMap.java:3441) at com.google.common.cache.CustomConcurrentHashMap$Segment.compute(CustomConcurrentHashMap.java:2322) at com.google.common.cache.CustomConcurrentHashMap$Segment.getOrCompute(CustomConcurrentHashMap.java:2291) at com.google.common.cache.CustomConcurrentHashMap.getOrCompute(CustomConcurrentHashMap.java:3802) at com.google.common.cache.ComputingCache.get(ComputingCache.java:46) at com.google.common.cache.AbstractCache.getUnchecked(AbstractCache.java:49) at com.atlassian.soy.impl.TemplateSetFactory.get(TemplateSetFactory.java:63) at com.atlassian.soy.impl.DefaultSoyManager.strainTofu(DefaultSoyManager.java:209) at com.atlassian.soy.impl.DefaultSoyManager.access$100(DefaultSoyManager.java:36) at com.atlassian.soy.impl.DefaultSoyManager$1.load(DefaultSoyManager.java:68) at com.atlassian.soy.impl.DefaultSoyManager$1.load(DefaultSoyManager.java:64) at com.google.common.cache.CustomConcurrentHashMap$ComputingValueReference.compute(CustomConcurrentHashMap.java:3426) at com.google.common.cache.CustomConcurrentHashMap$Segment.compute(CustomConcurrentHashMap.java:2322) at com.google.common.cache.CustomConcurrentHashMap$Segment.getOrCompute(CustomConcurrentHashMap.java:2291) at com.google.common.cache.CustomConcurrentHashMap.getOrCompute(CustomConcurrentHashMap.java:3802) at com.google.common.cache.ComputingCache.get(ComputingCache.java:46) at com.google.common.cache.AbstractCache.getUnchecked(AbstractCache.java:49) at com.atlassian.soy.impl.DefaultSoyManager.render(DefaultSoyManager.java:104) ... 61 more Caused by: java.lang.IllegalStateException: Required plugin module com.atlassian.confluence.plugins.confluence-daily-summary-email:chrome-template was either missing or disabled at com.atlassian.soy.impl.TemplateSetFactory$TemplateSetBuilder.addTemplatesForTree(TemplateSetFactory.java:99) at com.atlassian.soy.impl.TemplateSetFactory$TemplateSetBuilder.access$200(TemplateSetFactory.java:82) at com.atlassian.soy.impl.TemplateSetFactory.findRequiredTemplates(TemplateSetFactory.java:76) at com.atlassian.soy.impl.TemplateSetFactory.access$000(TemplateSetFactory.java:25) at com.atlassian.soy.impl.TemplateSetFactory$1.load(TemplateSetFactory.java:47) at com.atlassian.soy.impl.TemplateSetFactory$1.load(TemplateSetFactory.java:43) at com.google.common.cache.CustomConcurrentHashMap$ComputingValueReference.compute(CustomConcurrentHashMap.java:3426) ... 78 more
I received a response from Atlassian support. The explanation was that the cross dependencies on these plug-ins was due to the new use of soy templates with 5.x. The recommended fix was to re-enable the recommended updates plug-in and immediately disable the scheduled job that sends the recommneded updates email.
For now I suppose this may work but I am not keen on these separate plugins having dependency between them.
Hi Chad,
You should check there's a bug report for this one, or create it: https://jira.atlassian.com/browse/CONF
Regards,
Adrien
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.