Team Calendars for Confluence not able to load in Clustered Environment Confluence

Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.

Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Except Fisheye and Crucible

This article applies to Confluence clustered 5.4 or earlier.

Symptoms

In a Confluence clustered environment, re-installation or upgrade of the Team Calendars for Confluence would lead to an issue when it tries to load the calendar on the other node(s).

The following appears in the atlassian-confluence.log:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 -- referer: http://10.60.1.199/nodes/dashboard.action | url: /nodes/calendar/dashboardcalendar.action | userName: admin  | action: dashboardcalendar 2012-03-29 18:52:28,733 ERROR [TP-Processor8] [extra.calendar3.calendarstore.ExternalCalendarDataStore]  prepareSubCalendarForCache Unable to prepare cached sub-calendar -- referer: http://10.60.1.199/nodes/calendar/mycalendar.action | url: /nodes/rest/calendar-services/1.0/ calendar/subcalendars.json | userName: admin com.atlassian.confluence.extra.calendar3.exception.CalendarException at com.atlassian.confluence.extra.calendar3.calendarstore.JiraCalendarDataStore.getSubCalendarContentInternal(JiraCalendarDataStore.java:363) at com.atlassian.confluence.extra.calendar3.calendarstore.JiraCalendarDataStore.getSubCalendarContentInternal(JiraCalendarDataStore.java:81) at com.atlassian.confluence.extra.calendar3.calendarstore.ExternalCalendarDataStore._getSubCalendarContentInternal(ExternalCalendarDataStore.java:108) at com.atlassian.confluence.extra.calendar3.calendarstore.ExternalCalendarDataStore.getSubCalendarTimeZoneId(ExternalCalendarDataStore.java:78) at com.atlassian.confluence.extra.calendar3.calendarstore.ExternalCalendarDataStore.prepareSubCalendarForCache(ExternalCalendarDataStore.java:64) at com.atlassian.confluence.extra.calendar3.calendarstore.CalendarDataStoreCachingDecorator.save(CalendarDataStoreCachingDecorator.java:77) at com.atlassian.confluence.extra.calendar3.calendarstore.DelegatingCalendarDataStore.save(DelegatingCalendarDataStore.java:86) at com.atlassian.confluence.extra.calendar3.DefaultCalendarManager.save(DefaultCalendarManager.java:192) at com.atlassian.confluence.extra.calendar3.rest.CalendarResource.updateSubCalendarInternal(CalendarResource.java:407) at com.atlassian.confluence.extra.calendar3.rest.CalendarResource.access$1200(CalendarResource.java:87) at com.atlassian.confluence.extra.calendar3.rest.CalendarResource$3.doInTransaction(CalendarResource.java:346) at com.atlassian.confluence.extra.calendar3.rest.CalendarResource$3.doInTransaction(CalendarResource.java:343) at com.atlassian.sal.core.transaction.HostContextTransactionTemplate$1.doInTransaction(HostContextTransactionTemplate.java:25) at com.atlassian.sal.spring.component.SpringHostContextAccessor$1.doInTransaction(SpringHostContextAccessor.java:88) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:127) at com.atlassian.sal.spring.component.SpringHostContextAccessor.doInTransaction(SpringHostContextAccessor.java:82) at sun.reflect.GeneratedMethodAccessor87.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.atlassian.plugin.osgi.hostcomponents.impl.DefaultComponentRegistrar$ContextClassLoaderSettingInvocationHandler.invoke(DefaultComponentRegistrar.java:129)

Cause

This issue is caused by a Team Calendars for Confluence clustering cache bug. The bug report is tracked here : TEAMCAL-535: Clustering cache bug

Workaround

In order to fix this issue, Confluence clustered needs to be restarted completely (all nodes restart) to refresh the cache. To avoid a plugin cache corruption, please run the following steps:

  1. Shutdown all Confluence nodes

  2. Remove the following directories from each nodes (backup if necessary)

    1. <confluence-home>/bundled-plugins

    2. <confluence-home>/plugin-cache

    3. <confluence-home>/plugins-osgi-cache

    4. <confluence-home>/plugins-temp

    5. <confluence-home>/bundled-plugins_language

  3. Restart Confluence

Updated on April 8, 2025

Still need help?

The Atlassian Community is here for you.