Skip to content

Rename account causes IllegalThreadStateException #1715

@rfc2822

Description

@rfc2822
  1. Create an account.
  2. Rename the account.
  3. Watch adb logs:
 E  Couldn't rename account
java.lang.IllegalThreadStateException: AccountSettings may not be used on main thread
	at at.bitfire.davdroid.settings.AccountSettings.<init>(AccountSettings.kt:67)
	at at.bitfire.davdroid.DaggerApp_HiltComponents_SingletonC$SingletonCImpl$SwitchingProvider$1.create(DaggerApp_HiltComponents_SingletonC.java:1881)
	at at.bitfire.davdroid.settings.AccountSettings$Factory.create$default(AccountSettings.kt:61)
	at at.bitfire.davdroid.sync.AutomaticSyncManager.enableAutomaticSync(AutomaticSyncManager.kt:66)
	at at.bitfire.davdroid.sync.AutomaticSyncManager.updateAutomaticSync(AutomaticSyncManager.kt:145)
	at at.bitfire.davdroid.sync.AutomaticSyncManager.updateAutomaticSync(AutomaticSyncManager.kt:118)
	at at.bitfire.davdroid.repository.AccountRepository.rename(AccountRepository.kt:241)
	at at.bitfire.davdroid.repository.AccountRepository$rename$1.invokeSuspend(Unknown Source:15)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
	at android.os.Handler.handleCallback(Handler.java:995)
	at android.os.Handler.dispatchMessage(Handler.java:103)
	at android.os.Looper.loopOnce(Looper.java:248)
	at android.os.Looper.loop(Looper.java:338)
	at android.app.ActivityThread.main(ActivityThread.java:9067)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:593)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:932)

We also need better tests because account renaming is broken too often.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

Projects

Status

Todo

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions