Uploaded image for project: 'Confluence Cloud'
  1. Confluence Cloud
  2. CONFCLOUD-48870

Cannot Import ICS File When an Event Does Not Have DTEND

XMLWordPrintable

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

      Summary

      Team Calendars only imports .ics files that respects the RFC-2445. However, the Team Calendars plugin expects that the end date exists for every event, which is not actually mandatory according to the mentioned RFC:

      2. A calendar entry with a "DTSTART" property but no "DTEND"
      property does not take up any time. It is intended to represent
      an event that is associated with a given calendar date and time
      of day, such as an anniversary. Since the event does not take up
      any time, it MUST NOT be used to record busy time no matter what
      the value for the "TRANSP" property.

      Steps to Reproduce

      1. Install a Team Calendars in your Confluence
      2. Import a Calendar using the ConfluenceTeamCalendars_webcal.ics file attached to this report.

      Expected Results

      • The Calendars is imported as expected.

      Actual Results

      • The below exception is thrown in the atlassian-confluence.log file and the Calendar is not imported:
        2016-10-24 15:30:05,210 ERROR [ajp-nio-8001-exec-6] [extra.calendar3.xwork.ImportSubCalendarAction] execute Unable to import events of type other
         -- referer: http://quicksilver/confluence/calendar/mycalendar.action | url: /confluence/plugins/calendar/importsubcalendar.action | traceId: cfae990fa67f73ba | userName: admin | action: importsubcalendar
        java.lang.NullPointerException
        	at com.atlassian.confluence.extra.calendar3.DefaultActiveObjectsServiceWrapper.createEventEntity(DefaultActiveObjectsServiceWrapper.java:93)
        	at com.atlassian.confluence.extra.calendar3.DefaultActiveObjectsServiceWrapper.createEventEntity(DefaultActiveObjectsServiceWrapper.java:77)
        	at com.atlassian.confluence.extra.calendar3.calendarstore.AbstractCalendarDataStore.setSubCalendarContent(AbstractCalendarDataStore.java:1114)
        	at com.atlassian.confluence.extra.calendar3.calendarstore.AbstractPeopleHandlingSubCalendarDataStore.setSubCalendarContent(AbstractPeopleHandlingSubCalendarDataStore.java:124)
        	at com.atlassian.confluence.extra.calendar3.calendarstore.SanboxSubCalendarDataStoreCachingDecorator.setSubCalendarContent(SanboxSubCalendarDataStoreCachingDecorator.java:149)
        	at com.atlassian.confluence.extra.calendar3.calendarstore.DelegatingCalendarDataStore.setSubCalendarContent(DelegatingCalendarDataStore.java:234)
        	at com.atlassian.confluence.extra.calendar3.DefaultCalendarManager.setSubCalendarContent(DefaultCalendarManager.java:1808)
        	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        	at java.lang.reflect.Method.invoke(Method.java:483)
        	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)
        	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
        	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
        	at com.atlassian.plugins.spring.interceptor.plugin.ExportableInterceptorAdapter$WrappedMethodInvocation.proceed(ExportableInterceptorAdapter.java:53)
        	at com.atlassian.plugins.spring.interceptor.spi.SpringInterceptorAdapter$SpringMethodInvocationAdapter.proceed(SpringInterceptorAdapter.java:50)
        	at com.atlassian.spring.interceptors.SpringProfilingInterceptor.invoke(SpringProfilingInterceptor.java:16)
        	at com.atlassian.plugins.spring.interceptor.spi.SpringInterceptorAdapter.invoke(SpringInterceptorAdapter.java:23)
        	at sun.reflect.GeneratedMethodAccessor1098.invoke(Unknown Source)
        	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        	at java.lang.reflect.Method.invoke(Method.java:483)
        	at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26)
        	at com.sun.proxy.$Proxy287.invoke(Unknown Source)
        	at com.atlassian.plugins.spring.interceptor.plugin.ExportableInterceptorAdapter.invoke(ExportableInterceptorAdapter.java:26)
        	at sun.reflect.GeneratedMethodAccessor1103.invoke(Unknown Source)
        	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        	at java.lang.reflect.Method.invoke(Method.java:483)
        

      Notes

      • The code for DefaultActiveObjectsServiceWrapper.java:93 is:
        Date endDate = endDateProperty.getDate();
        

      Workaround

      • Remove the events that do not have DTEND defined, or add a DTEND line for the events in those .ics file.

              89741866c57b Ashish Shirode
              emallmann Eduardo Mallmann (Inactive)
              Votes:
              5 Vote for this issue
              Watchers:
              10 Start watching this issue

                Created:
                Updated:
                Resolved: