Skip to content

[ical4j 4.x] NullPointerException in JtxICalObject.extractProperties() #303

@cketti

Description

@cketti

Prerequisites:

Steps to reproduce:

  1. Click "add account".
  2. Select "advanced login" option.
  3. Enter cal.aegee.org as base URL, leave username and password empty.
  4. Finish account setup.
  5. Enable "OMS" in "CalDAV" tab.
  6. Initial sync should work fine.
  7. Manually re-sync → NullPointerException

Stacktrace:

java.lang.NullPointerException: Attempt to invoke virtual method 'byte[] java.nio.ByteBuffer.array()' on a null object reference
	at at.bitfire.ical4android.JtxICalObject$Companion.extractProperties(JtxICalObject.kt:504)
	at at.bitfire.ical4android.JtxICalObject$Companion.fromReader(JtxICalObject.kt:319)
	at at.bitfire.davdroid.sync.JtxSyncManager.processICalObject$core(JtxSyncManager.kt:175)
	at at.bitfire.davdroid.sync.JtxSyncManager$downloadRemote$2.invokeSuspend$lambda$0$0$0(JtxSyncManager.kt:155)
	at at.bitfire.davdroid.sync.JtxSyncManager$downloadRemote$2.$r8$lambda$CuGlkJ9wW6_seOsk7DNaV_xSS40(Unknown Source:0)
	at at.bitfire.davdroid.sync.JtxSyncManager$downloadRemote$2$$ExternalSyntheticLambda0.invoke(D8$$SyntheticClass:0)
	at at.bitfire.davdroid.sync.SyncException$Companion$wrapWithRemoteResource$1.invokeSuspend$suspendConversion0(SyncException.kt:43)
	at at.bitfire.davdroid.sync.SyncException$Companion$wrapWithRemoteResource$1.access$invokeSuspend$suspendConversion0(Unknown Source:0)
	at at.bitfire.davdroid.sync.SyncException$Companion$wrapWithRemoteResource$1$1.invoke(SyncException.kt:43)
	at at.bitfire.davdroid.sync.SyncException$Companion$wrapWithRemoteResource$1$1.invoke(SyncException.kt:43)
	at at.bitfire.davdroid.sync.SyncException$Companion.wrapWithRemoteResourceSuspending(SyncException.kt:48)
	at at.bitfire.davdroid.sync.SyncException$Companion$wrapWithRemoteResource$1.invokeSuspend(SyncException.kt:43)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
	at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:263)
	at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:94)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:70)
	at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:1)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:48)
	at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source:1)
	at at.bitfire.davdroid.sync.SyncException$Companion.wrapWithRemoteResource(SyncException.kt:42)
	at at.bitfire.davdroid.sync.JtxSyncManager$downloadRemote$2.invokeSuspend$lambda$0$0(JtxSyncManager.kt:140)
	at at.bitfire.davdroid.sync.JtxSyncManager$downloadRemote$2.$r8$lambda$MKOfwgC7oDWikMawDoBFRNJQEWk(Unknown Source:0)
	at at.bitfire.davdroid.sync.JtxSyncManager$downloadRemote$2$$ExternalSyntheticLambda2.onResponse(D8$$SyntheticClass:0)
	at at.bitfire.dav4jvm.okhttp.Response$Companion.parse(Response.kt:221)
	at at.bitfire.dav4jvm.okhttp.DavResource.processMultiStatus$parseMultiStatus(DavResource.kt:802)
	at at.bitfire.dav4jvm.okhttp.DavResource.processMultiStatus(DavResource.kt:821)
	at at.bitfire.dav4jvm.okhttp.DavResource.processMultiStatus(DavResource.kt:772)
	at at.bitfire.dav4jvm.okhttp.DavCalendar.multiget(DavCalendar.kt:178)
	at at.bitfire.dav4jvm.okhttp.DavCalendar.multiget$default(DavCalendar.kt:142)
	at at.bitfire.davdroid.sync.JtxSyncManager$downloadRemote$2.invokeSuspend$lambda$0(JtxSyncManager.kt:138)
	at at.bitfire.davdroid.sync.JtxSyncManager$downloadRemote$2$$ExternalSyntheticLambda1.invoke(D8$$SyntheticClass:0)
	at kotlinx.coroutines.InterruptibleKt.runInterruptibleInExpectedContext(Interruptible.kt:48)
	at kotlinx.coroutines.InterruptibleKt.access$runInterruptibleInExpectedContext(Interruptible.kt:1)
	at kotlinx.coroutines.InterruptibleKt$runInterruptible$2.invokeSuspend(Interruptible.kt:40)
	at kotlinx.coroutines.InterruptibleKt$runInterruptible$2.invoke(Unknown Source:8)
	at kotlinx.coroutines.InterruptibleKt$runInterruptible$2.invoke(Unknown Source:4)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndspatched(Undispatched.kt:66)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:43)
	at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:157)
	at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:1)
  	at kotlinx.coroutines.InterruptibleKt.runInterruptible(Interruptible.kt:39)
	at kotlinx.coroutines.InterruptibleKt.runInterruptible$default(Interruptible.kt:36)
	at at.bitfire.davdroid.sync.JtxSyncManager$downloadRemote$2.invokeSuspend(JtxSyncManager.kt:137)
	at at.bitfire.davdroid.sync.JtxSyncManager$downloadRemote$2.invoke(Unknown Source:8)
	at at.bitfire.davdroid.sync.JtxSyncManager$downloadRemote$2.invoke(Unknown Source:2)
	at at.bitfire.davdroid.sync.SyncException$Companion.wrapWithRemoteResourceSuspending(SyncException.kt:48)
	at at.bitfire.davdroid.sync.JtxSyncManager.downloadRemote(JtxSyncManager.kt:136)
	at at.bitfire.davdroid.sync.SyncManager$syncRemote$2$download$1.invokeSuspend(SyncManager.kt:605)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)

Metadata

Metadata

Assignees

Labels

tasksRegarding tasks / everything that's stored in a task app provider

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions