When trying to render the calendar on a page, the following stack trace is generated:
Plugin module confluence.extra.calendar:calendarpluginextractor is incompatible with this version of Confluence. You will need to upgrade to a newer version of the Calendar Plugin plugin. java.lang.NoSuchMethodError: org/apache/lucene/document/Document.add(Lorg/apache/lucene/document/Field;)V
java.lang.NoSuchMethodError: org/apache/lucene/document/Document.add(Lorg/apache/lucene/document/Field;)V
at com.atlassian.confluence.extra.calendar.extractor.CalendarExtractor.indexCalendars(CalendarExtractor.java:76)
at com.atlassian.confluence.extra.calendar.extractor.CalendarExtractor.addFields(CalendarExtractor.java:53)
at com.atlassian.confluence.plugin.descriptor.ExtractorModuleDescriptor$BackwardsCompatibleExtractor.addFields(ExtractorModuleDescriptor.java:40)
at com.atlassian.bonnie.search.BaseDocumentBuilder.getDocument(BaseDocumentBuilder.java:30)
at com.atlassian.confluence.search.lucene.tasks.AddDocumentIndexTask.perform(AddDocumentIndexTask.java:35)
at com.atlassian.confluence.search.lucene.bonnie.BulkWriterAction.perform(BulkWriterAction.java:31)
at com.atlassian.bonnie.LuceneConnection.withWriter(LuceneConnection.java:247)
at com.atlassian.bonnie.LuceneConnection.withWriter(LuceneConnection.java:237)
at com.atlassian.confluence.search.lucene.DefaultConfluenceIndexManager.processTasks(DefaultConfluenceIndexManager.java:208)
at com.atlassian.confluence.search.lucene.DefaultConfluenceIndexManager.flushQueue(DefaultConfluenceIndexManager.java:117)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:615)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:296)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:177)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy146.flushQueue(Unknown Source)
at com.atlassian.confluence.search.lucene.IndexQueueFlusher.executeJob(IndexQueueFlusher.java:30)
at com.atlassian.confluence.setup.quartz.AbstractClusterAwareQuartzJobBean.surroundJobExecutionWithLogging(AbstractClusterAwareQuartzJobBean.java:64)
at com.atlassian.confluence.setup.quartz.AbstractClusterAwareQuartzJobBean.executeInternal(AbstractClusterAwareQuartzJobBean.java:47)
at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)
at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
I originally thought this might be a classloading issue, but reversing the classloading policy had no effect. The calendar page on Cofluence gets rendered as a blank page.
The error is being thrown from a quartz worker thread as part of the routine index flush that is scheduled to run every minute.
The problem here lies with the plugin built against a version of atlassian-bonnie (and lucene) that is not compatible or consistent with the version of bonnie (lucene) used by the Confluence instance its installed on.
Either, disable the extractor module in the calendar plugin, or upgrade your calendar plugin to the latest version.
Cheers,
Dave