Skip to content

java.lang.NullPointerException: getEtag(...) must not be null #284

@TheLastZombie

Description

@TheLastZombie

Overview

When trying to access a KeePass database file on a WebDAV server, KeePassVault crashes with the following error:

java.lang.NullPointerException: getEtag(...) must not be null
	at com.ivanovsky.passnotes.data.repository.file.webdav.WebDavClientV2.toRemoteFileMetadata(WebDavClientV2.kt:333)
	at com.ivanovsky.passnotes.data.repository.file.webdav.WebDavClientV2.toRemoteFileMetadata$default(WebDavClientV2.kt:319)
	at com.ivanovsky.passnotes.data.repository.file.webdav.WebDavClientV2.getFileMetadata(WebDavClientV2.kt:158)
	at com.ivanovsky.passnotes.data.repository.file.webdav.WebDavClientV2.getFileMetadata(WebDavClientV2.kt:138)
	at com.ivanovsky.passnotes.data.repository.file.remote.RemoteApiClientAdapter.getFileMetadataOrThrow(RemoteApiClientAdapter.kt:44)
	at com.ivanovsky.passnotes.data.repository.file.remote.RemoteFileSystemProvider.openFileForRead(RemoteFileSystemProvider.java:295)
	at com.ivanovsky.passnotes.data.repository.keepass.KeepassDatabaseRepository.open(KeepassDatabaseRepository.kt:53)
	at com.ivanovsky.passnotes.domain.interactor.unlock.UnlockInteractor$openDatabase$2.invokeSuspend(UnlockInteractor.kt:113)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
	at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:115)
	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:103)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@8b5a6ee, Dispatchers.Main.immediate]

How to reproduce

  1. Set up a WebDAV server. I've tried copyparty and dufs, the issue occurs with both.
  2. Upload a KeePass database to the server.
  3. Open KeePassVault and add the database to the list.
  4. Enter the database password. When tapping the unlock button, the app crashes with the above message.

Version

1.9.0 (via F-Droid)

Android Version

Android 15 (GrapheneOS)

Device Model

Pixel 8 Pro

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions