Skip to content
This repository was archived by the owner on May 26, 2026. It is now read-only.
This repository was archived by the owner on May 26, 2026. It is now read-only.

[jtx Board] NPE when adding non-email-address attendee #211

Closed

Description

@rfc2822

Reproducible. CC @patrickunterwegs


When adding an attendee to a task in JTX Board and then attempting to sync with DAVx⁵, the sync fails with the following error:

java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
	at java.net.URI$Parser.parse(URI.java:3093)
	at java.net.URI.<init>(URI.java:584)
	at at.bitfire.ical4android.JtxICalObject.addProperties(r8-map-id-33936d9e6d681d0995265b121ccbb1590427a15578f9cf5b7e4025d4b078f3ca:591)
	at at.bitfire.ical4android.JtxICalObject.getICalendarFormat(r8-map-id-33936d9e6d681d0995265b121ccbb1590427a15578f9cf5b7e4025d4b078f3ca:102)
	at at.bitfire.ical4android.JtxICalObject.write(r8-map-id-33936d9e6d681d0995265b121ccbb1590427a15578f9cf5b7e4025d4b078f3ca:13)
	at at.bitfire.davdroid.sync.JtxSyncManager.generateUpload$app(r8-map-id-33936d9e6d681d0995265b121ccbb1590427a15578f9cf5b7e4025d4b078f3ca:47)
	at at.bitfire.davdroid.sync.JtxSyncManager.generateUpload$app(r8-map-id-33936d9e6d681d0995265b121ccbb1590427a15578f9cf5b7e4025d4b078f3ca:95)
	at at.bitfire.davdroid.sync.SyncManager.uploadDirty$suspendImpl(r8-map-id-33936d9e6d681d0995265b121ccbb1590427a15578f9cf5b7e4025d4b078f3ca:141)
	at at.bitfire.davdroid.sync.SyncManager.uploadDirty(r8-map-id-33936d9e6d681d0995265b121ccbb1590427a15578f9cf5b7e4025d4b078f3ca:1)
	at at.bitfire.davdroid.sync.SyncManager.uploadDirty$default(r8-map-id-33936d9e6d681d0995265b121ccbb1590427a15578f9cf5b7e4025d4b078f3ca:8)
	at at.bitfire.davdroid.sync.SyncManager$uploadDirty$2$1$1.invokeSuspend(r8-map-id-33936d9e6d681d0995265b121ccbb1590427a15578f9cf5b7e4025d4b078f3ca:33)
	at at.bitfire.davdroid.sync.SyncManager$uploadDirty$2$1$1.invoke(r8-map-id-33936d9e6d681d0995265b121ccbb1590427a15578f9cf5b7e4025d4b078f3ca:9)
	at at.bitfire.davdroid.sync.SyncManager$uploadDirty$2$1$1.invoke(r8-map-id-33936d9e6d681d0995265b121ccbb1590427a15578f9cf5b7e4025d4b078f3ca:14)
	at at.bitfire.davdroid.sync.SyncException$Companion.wrapWithLocalResourceSuspending(r8-map-id-33936d9e6d681d0995265b121ccbb1590427a15578f9cf5b7e4025d4b078f3ca:67)
	at at.bitfire.davdroid.sync.SyncManager$uploadDirty$2$1.invokeSuspend(r8-map-id-33936d9e6d681d0995265b121ccbb1590427a15578f9cf5b7e4025d4b078f3ca:38)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(r8-map-id-33936d9e6d681d0995265b121ccbb1590427a15578f9cf5b7e4025d4b078f3ca:9)
	at kotlinx.coroutines.DispatchedTask.run(r8-map-id-33936d9e6d681d0995265b121ccbb1590427a15578f9cf5b7e4025d4b078f3ca:114)
	at androidx.core.app.ActivityRecreator$1.run(r8-map-id-33936d9e6d681d0995265b121ccbb1590427a15578f9cf5b7e4025d4b078f3ca:11)
	at kotlinx.coroutines.scheduling.TaskImpl.run(r8-map-id-33936d9e6d681d0995265b121ccbb1590427a15578f9cf5b7e4025d4b078f3ca:3)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(r8-map-id-33936d9e6d681d0995265b121ccbb1590427a15578f9cf5b7e4025d4b078f3ca:88)

Syncing tasks without attendees work fine, and other DAVx5 syncs complete successfully.

Steps to reproduce

  1. Create a task on the JTX Board.
  2. Add a non-email attendee to the task.
  3. Trigger a sync via DAVx⁵.
  4. The sync fails with a NullPointerException.

Envoriment

DAVx⁵: 4.5.9-ose

JTX Board: 2.15.00.ose

Android: 16 (Samsung SM-S908U)

Calendar server: Radicale

Originally posted by @SrS2225a in bitfireAT/davx5-ose#2049

Activity

  1. added theissue type on Mar 8, 2026
  2. added
    tasksRegarding tasks / everything that's stored in a task app provider
    on Mar 8, 2026
  3. changed the title [-]When adding an attendee to a task in JTX Board and then attempting to sync with DAVx⁵, the sync fails with the following error:[/-] [+][jtx Board] NPE when adding non-email-address attendee[/+] on Mar 8, 2026
  4. assigned and unassigned on Mar 30, 2026
  5. linked a pull request that will close this issueDon't try to add empty attendee caladdress #273on Mar 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

jtx BoardRelated to jtx BoardtasksRegarding 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