Invalid ICS



  • Hi,

    I have an invalid ics file again, it seems, similar to a post I made some time ago:

    https://forums.bitfire.at/post/9788

    However, the cause appears to be different this time and I cannot figure out what is wrong. Here is the debug message:

    --- BEGIN DEBUG INFO ---
    Account name: xxx@gmail.com
    Authority: org.dmfs.tasks
    
    REMOTE RESOURCE:
    https://xxx/ba387c24-7f35-4c47-afc7-1da7b5bdaa75.ics
    
    EXCEPTION:
    java.lang.NullPointerException: Attempt to invoke virtual method 'void java.util.Calendar.setTimeZone(java.util.TimeZone)' on a null object reference
    	at java.text.DateFormat.setTimeZone(DateFormat.java:690)
    	at net.fortuna.ical4j.model.Iso8601.<init>(Iso8601.java:77)
    	at net.fortuna.ical4j.model.Date.<init>(Date.java:150)
    	at net.fortuna.ical4j.model.DateTime.<init>(DateTime.java:253)
    	at net.fortuna.ical4j.model.TimeZone.getOffset(TimeZone.java:108)
    	at java.util.GregorianCalendar.computeFields(GregorianCalendar.java:2356)
    	at java.util.GregorianCalendar.computeTime(GregorianCalendar.java:2813)
    	at java.util.Calendar.updateTime(Calendar.java:3397)
    	at java.util.Calendar.getTimeInMillis(Calendar.java:1761)
    	at java.util.Calendar.getTime(Calendar.java:1734)
    	at java.text.SimpleDateFormat.parseInternal(SimpleDateFormat.java:1633)
    	at java.text.SimpleDateFormat.parse(SimpleDateFormat.java:1528)
    	at java.text.DateFormat.parse(DateFormat.java:360)
    	at net.fortuna.ical4j.model.DateTime.setTime(DateTime.java:415)
    	at net.fortuna.ical4j.model.DateTime.<init>(DateTime.java:321)
    	at net.fortuna.ical4j.model.property.DateProperty.setValue(DateProperty.java:137)
    	at net.fortuna.ical4j.data.CalendarBuilder$ContentHandlerImpl.propertyValue(CalendarBuilder.java:299)
    	at net.fortuna.ical4j.data.CalendarParserImpl$PropertyParser.parse(CalendarParserImpl.java:282)
    	at net.fortuna.ical4j.data.CalendarParserImpl$PropertyParser.access$1100(CalendarParserImpl.java:229)
    	at net.fortuna.ical4j.data.CalendarParserImpl$PropertyListParser.parse(CalendarParserImpl.java:210)
    	at net.fortuna.ical4j.data.CalendarParserImpl$ComponentParser.parse(CalendarParserImpl.java:422)
    	at net.fortuna.ical4j.data.CalendarParserImpl$ComponentParser.access$900(CalendarParserImpl.java:406)
    	at net.fortuna.ical4j.data.CalendarParserImpl$PropertyListParser.parse(CalendarParserImpl.java:208)
    	at net.fortuna.ical4j.data.CalendarParserImpl.parseCalendar(CalendarParserImpl.java:115)
    	at net.fortuna.ical4j.data.CalendarParserImpl.parseCalendarList(CalendarParserImpl.java:180)
    	at net.fortuna.ical4j.data.CalendarParserImpl.parse(CalendarParserImpl.java:149)
    	at net.fortuna.ical4j.data.CalendarBuilder.build(CalendarBuilder.java:198)
    	at net.fortuna.ical4j.data.CalendarBuilder.build(CalendarBuilder.java:178)
    	at at.bitfire.ical4android.Task$Companion.fromReader(Task.kt:66)
    	at at.bitfire.davdroid.syncadapter.TasksSyncManager.processVTodo(TasksSyncManager.kt:136)
    	at at.bitfire.davdroid.syncadapter.TasksSyncManager.access$processVTodo(TasksSyncManager.kt:44)
    	at at.bitfire.davdroid.syncadapter.TasksSyncManager$downloadRemote$2$1$1.invoke(TasksSyncManager.kt:122)
    	at at.bitfire.davdroid.syncadapter.TasksSyncManager$downloadRemote$2$1$1.invoke(TasksSyncManager.kt:44)
    	at at.bitfire.davdroid.syncadapter.SyncManager.useRemote(SyncManager.kt:785)
    	at at.bitfire.davdroid.syncadapter.TasksSyncManager$downloadRemote$2$1.invoke(TasksSyncManager.kt:114)
    	at at.bitfire.davdroid.syncadapter.TasksSyncManager$downloadRemote$2$1.invoke(TasksSyncManager.kt:44)
    	at at.bitfire.dav4android.Response$Companion.parse(Response.kt:211)
    	at at.bitfire.dav4android.DavResource$processMultiStatus$2.invoke(DavResource.kt:384)
    	at at.bitfire.dav4android.DavResource.processMultiStatus(DavResource.kt:403)
    	at at.bitfire.dav4android.DavResource.processMultiStatus(DavResource.kt:354)
    	at at.bitfire.dav4android.DavCalendar.multiget(DavCalendar.kt:150)
    	at at.bitfire.davdroid.syncadapter.TasksSyncManager$downloadRemote$2.invoke(TasksSyncManager.kt:113)
    	at at.bitfire.davdroid.syncadapter.TasksSyncManager$downloadRemote$2.invoke(TasksSyncManager.kt:44)
    	at at.bitfire.davdroid.syncadapter.SyncManager.useRemote(SyncManager.kt:774)
    	at at.bitfire.davdroid.syncadapter.SyncManager.useRemoteCollection(SyncManager.kt:795)
    	at at.bitfire.davdroid.syncadapter.TasksSyncManager.downloadRemote(TasksSyncManager.kt:112)
    	at at.bitfire.davdroid.syncadapter.SyncManager$syncRemote$1$1.run(SyncManager.kt:438)
    	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:457)
    	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
    	at java.lang.Thread.run(Thread.java:764)
    
    SOFTWARE INFORMATION
    Package: at.bitfire.davdroid
    Version: 2.0.4-gplay (245) from 8 Sep 2018
    Installed from: com.android.vending
    JB Workaround installed: no
    
    CONNECTIVITY (at the moment)
    Active connection: mobile, CONNECTED
    
    CONFIGURATION
    Power saving disabled: yes
    android.permission.READ_CONTACTS permission: granted
    android.permission.WRITE_CONTACTS permission: granted
    android.permission.READ_CALENDAR permission: granted
    android.permission.WRITE_CALENDAR permission: granted
    org.dmfs.permission.READ_TASKS permission: granted
    org.dmfs.permission.WRITE_TASKS permission: granted
    System-wide synchronization: automatically
    Account: xxx@gmail.com
      Address book sync. interval: 60 min
      Calendar     sync. interval: 60 min
      OpenTasks    sync. interval: 60 min
      WiFi only: false
      [CardDAV] Contact group method: GROUP_VCARDS
      [CalDAV] Time range (past days): 90
               Manage calendar colors: true
    
    SQLITE DUMP
    android_metadata
    	|  locale |
    	|  en_GB |
    ----------
    services
    	|  _id | accountName | service | principal |
    	|  3 | xxx@gmail.com | caldav | <null> |
    ----------
    sqlite_sequence
    	|  name | seq |
    	|  services | 3 |
    	|  homesets | 14 |
    	|  collections | 8 |
    ----------
    homesets
    	|  _id | serviceID | url |
    	|  14 | 3 | https://xxx/ |
    ----------
    collections
    	|  _id | serviceID | url | readOnly | displayName | description | color | timezone | supportsVEVENT | supportsVTODO | sync | type | source | forceReadOnly | privWriteContent | privUnbind |
    	|  8 | 3 | https://xxx/ | 0 | <null> | <null> | <null> | <null> | 1 | 1 | 1 | CALENDAR | <null> | 0 | 1 | 1 |
    ----------
    
    SYSTEM INFORMATION
    Android version: 8.0.0 (R16NW.G930FXXS2ERH6)
    Device: samsung SM-G930F (herolte)
    

    And here is the ics file:

    BEGIN:VCALENDAR
    PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
    VERSION:2.0
    BEGIN:VTIMEZONE
    TZID:Europe/London
    BEGIN:DAYLIGHT
    TZOFFSETFROM:+0000
    TZOFFSETTO:+0100
    TZNAME:BST
    DTSTART:19700329T010000
    RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
    END:DAYLIGHT
    BEGIN:STANDARD
    TZOFFSETFROM:+0100
    TZOFFSETTO:+0000
    TZNAME:GMT
    DTSTART:19701025T020000
    RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
    END:STANDARD
    END:VTIMEZONE
    BEGIN:VEVENT
    CREATED:20180326T155831Z
    LAST-MODIFIED:20180328T165414Z
    DTSTAMP:20180328T165414Z
    UID:ba387c24-7f35-4c47-afc7-1da7b5bdaa75
    SUMMARY:xxx
    STATUS:CONFIRMED
    X-MOZ-LASTACK:20180328T165414Z
    DTSTART;TZID=Europe/London:20180328T160000
    DTEND;TZID=Europe/London:20180328T180000
    SEQUENCE:1
    LOCATION:xxx
    X-MOZ-GENERATION:1
    BEGIN:VALARM
    ACTION:DISPLAY
    TRIGGER;VALUE=DURATION:-PT15M
    DESCRIPTION:xxx
    END:VALARM
    END:VEVENT
    END:VCALENDAR
    

    Could you advise please?

    Thanks in advance!


  • developer

    Hello,

    Seems to be a duplicate of https://forums.bitfire.at/post/9654, please follow up there.

    Currently it seems to help to uninstall DAVdroid and install it again.