Team Calendars for Confluence not able to load in Clustered Environment Confluence
This article applies to Confluence clustered 5.4 or earlier.
症状
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).
atlassian-confluence.log
に次のエラーが返される。
-- 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)
原因
This issue is caused by a Team Calendars for Confluence clustering cache bug. The bug report is tracked here : TEAMCAL-535: Clustering cache bug
回避策
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
Confluence を再起動します。