Uploaded image for project: 'Confluence Data Center'
  1. Confluence Data Center
  2. CONFSERVER-49487

Subscribing by URL to a calendar fails when the calendar has complex recurrence rules on events and unrecognized timezone

    XMLWordPrintable

Details

    Description

      NOTE: This bug report is for Confluence Server. Using Confluence Cloud? See the corresponding bug report.

      Steps to Reproduce:

      1. Download the ICS file attached
      2. Import the ICS into Google Calendar
      3. From calendar settings take the private URL of the calendar (iCal).
      4. Subscribe to the Calendar in Team Calendar from Add Calendar > Subscribe by URL.

      Actual Results:

      • Events will not be displayed in TC

      In the logs:

      2014-02-06 06:32:46,281 WARN [http-8090-2] [extra.calendar3.util.CalendarImportUtil] SanitizeEventTimeZone Unknown timezone: Etc/GMT-9 for event SUMMARY:TV14
      . Event timezone set to: Australia/Sydney
       -- referer: http://localhost:8090/index.action | url: /rest/calendar-services/1.0/calendar/subcalendars.json | userName: admin
      

      Note that event summary here is: TV14

      2014-02-06 06:33:35,555 ERROR [http-8090-2] [extra.calendar3.rest.CalendarResource] doInTransaction Unable to load events of sub-calendar 3f413ca4-3ceb-4152-b9b7-f5d27430c0a6
       -- referer: http://localhost:8090/ | url: /rest/calendar-services/1.0/calendar/events.json | userName: admin
      java.lang.NullPointerException
        at edu.emory.mathcs.backport.java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:769)
        at net.fortuna.ical4j.model.TimeZoneRegistryImpl.getTimeZone(TimeZoneRegistryImpl.java:137)
        at com.atlassian.confluence.extra.calendar3.DefaultJodaIcal4jTimeZoneMapper.getIcal4jTimeZone(DefaultJodaIcal4jTimeZoneMapper.java:116)
        at com.atlassian.confluence.extra.calendar3.DefaultCalendarManager.getSubCalendarTimeZone(DefaultCalendarManager.java:423)
        at com.atlassian.confluence.extra.calendar3.DefaultCalendarManager.getEvents(DefaultCalendarManager.java:574)
        at com.atlassian.confluence.extra.calendar3.rest.CalendarResource$9.doInTransaction(CalendarResource.java:685)
        at com.atlassian.confluence.extra.calendar3.rest.CalendarResource$9.doInTransaction(CalendarResource.java:651)
        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:128)
        at com.atlassian.sal.spring.component.SpringHostContextAccessor.doInTransaction(SpringHostContextAccessor.java:82)
        at sun.reflect.GeneratedMethodAccessor92.invoke(Unknown Source)
      
      2014-02-06 06:33:35,569 ERROR [http-8090-2] [jersey.spi.container.ContainerResponse] logException Mapped exception to response: 500 (Internal Server Error)
       -- referer: http://localhost:8090/ | url: /rest/calendar-services/1.0/calendar/events.json | userName: admin
      javax.ws.rs.WebApplicationException
        at com.atlassian.confluence.extra.calendar3.rest.CalendarResource$9.doInTransaction(CalendarResource.java:729)
        at com.atlassian.confluence.extra.calendar3.rest.CalendarResource$9.doInTransaction(CalendarResource.java:651)
        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:128)
        at com.atlassian.sal.spring.component.SpringHostContextAccessor.doInTransaction(SpringHostContextAccessor.java:82)
        at sun.reflect.GeneratedMethodAccessor92.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
      

      Workaround:

      In google Calendar, locate the event that is throwing this error (In this example the event is TV14), and do the following:

      • Click on it and press "Edit Event".
      • Click on Time-zone to set the time-zone to a time-zone in Google Calendar and save.
      • From calendar settings take the private URL of the calendar (iCal) and try to subscribe again.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              htoussi HosseinA
              Votes:
              3 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: