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:
Shutdown all Confluence nodes
Remove the following directories from each nodes (backup if necessary)
<confluence-home>/bundled-
plugins
<confluence-home>/
plugin
-
cache
<confluence-home>/plugins-
osgi-
cache
<confluence-home>/plugins-
temp
<confluence-home>/bundled-
plugins_language
Restart Confluence
Was this helpful?