Skip to content

BugFix - ConflictResolveActivity - keepOfflineFolder - Create Client On MainThread#15200

Merged
tobiasKaminsky merged 1 commit intomasterfrom
bugfix/creating-client-on-main-thread
Jul 22, 2025
Merged

BugFix - ConflictResolveActivity - keepOfflineFolder - Create Client On MainThread#15200
tobiasKaminsky merged 1 commit intomasterfrom
bugfix/creating-client-on-main-thread

Conversation

@alperozturk96
Copy link
Copy Markdown
Collaborator

@alperozturk96 alperozturk96 commented Jul 18, 2025

  • Tests written, or not not needed

Issue

Exception java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nextcloud.client/com.owncloud.android.ui.activity.ConflictsResolveActivity}: java.lang.IllegalStateException: calling this from your main thread can lead to deadlock
  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:4372)
  at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:4569)
  at android.app.servertransaction.LaunchActivityItem.execute (LaunchActivityItem.java:126)
  at android.app.servertransaction.TransactionExecutor.executeNonLifecycleItem (TransactionExecutor.java:179)
  at android.app.servertransaction.TransactionExecutor.executeTransactionItems (TransactionExecutor.java:114)
  at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:86)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2902)
  at android.os.Handler.dispatchMessage (Handler.java:107)
  at android.os.Looper.loopOnce (Looper.java:282)
  at android.os.Looper.loop (Looper.java:387)
  at android.app.ActivityThread.main (ActivityThread.java:9500)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:600)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1005)
Caused by java.lang.IllegalStateException: calling this from your main thread can lead to deadlock
  at android.accounts.AccountManager.ensureNotOnMainThread (AccountManager.java:2273)
  at android.accounts.AccountManager.-$$Nest$mensureNotOnMainThread (Unknown Source)
  at android.accounts.AccountManager$AmsTask.internalGetResult (AccountManager.java:2379)
  at android.accounts.AccountManager$AmsTask.getResult (AccountManager.java:2412)
  at android.accounts.AccountManager$AmsTask.getResult (AccountManager.java:2332)
  at android.accounts.AccountManager.blockingGetAuthToken (AccountManager.java:1630)
  at com.owncloud.android.lib.common.accounts.AccountUtils.getCredentialsForAccount (AccountUtils.java:126)
  at com.owncloud.android.lib.common.OwnCloudAccount.loadCredentials (OwnCloudAccount.java:111)
  at com.owncloud.android.lib.common.OwnCloudClientManager.getClientFor (OwnCloudClientManager.java:102)
  at com.nextcloud.client.network.ClientFactoryImpl.create (ClientFactoryImpl.java:38)
  at com.nextcloud.client.jobs.operation.FileOperationHelper.<init> (FileOperationHelper.kt:33)
  at com.nextcloud.client.di.AppModule.fileOperationHelper (AppModule.java:256)
  at com.nextcloud.client.di.AppModule_FileOperationHelperFactory.fileOperationHelper (AppModule_FileOperationHelperFactory.java:56)
  at com.nextcloud.client.di.DaggerAppComponent$AppComponentImpl.fileOperationHelper (DaggerAppComponent.java:6737)
  at com.nextcloud.client.di.DaggerAppComponent$ConflictsResolveActivitySubcomponentImpl.injectConflictsResolveActivity (DaggerAppComponent.java:2386)
  at com.nextcloud.client.di.DaggerAppComponent$ConflictsResolveActivitySubcomponentImpl.inject (DaggerAppComponent.java:2365)
  at com.nextcloud.client.di.DaggerAppComponent$ConflictsResolveActivitySubcomponentImpl.inject (DaggerAppComponent.java:2347)
  at dagger.android.DispatchingAndroidInjector.maybeInject (DispatchingAndroidInjector.java:113)
  at dagger.android.DispatchingAndroidInjector.inject (DispatchingAndroidInjector.java:134)
  at dagger.android.AndroidInjection.inject (AndroidInjection.java:181)
  at dagger.android.AndroidInjection.inject (AndroidInjection.java:55)
  at com.nextcloud.client.di.ActivityInjector.onActivityCreated (ActivityInjector.kt:18)
  at android.app.Application.dispatchActivityCreated (Application.java:388)
  at android.app.Activity.dispatchActivityCreated (Activity.java:1549)
  at android.app.Activity.onCreate (Activity.java:1877)
  at androidx.core.app.ComponentActivity.onCreate (ComponentActivity.kt:68)
  at androidx.activity.ComponentActivity.onCreate (ComponentActivity.kt:328)
  at androidx.fragment.app.FragmentActivity.onCreate (FragmentActivity.java:216)
  at com.owncloud.android.ui.activity.BaseActivity.onCreate (BaseActivity.java:73)
  at com.owncloud.android.ui.activity.DrawerActivity.onCreate (DrawerActivity.java:1066)
  at com.owncloud.android.ui.activity.FileActivity.onCreate (FileActivity.java:217)
  at com.owncloud.android.ui.activity.ConflictsResolveActivity.onCreate (ConflictsResolveActivity.kt:72)
  at android.app.Activity.performCreate (Activity.java:9196)
  at android.app.Activity.performCreate (Activity.java:9168)
  at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1544)
  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:4346)

Signed-off-by: alperozturk <alper_ozturk@proton.me>
@alperozturk96
Copy link
Copy Markdown
Collaborator Author

/backport to stable-3.32

@github-actions
Copy link
Copy Markdown

APK file: https://www.kaminsky.me/nc-dev/android-artifacts/15200.apk

qrcode

To test this change/fix you can simply download above APK file and install and test it in parallel to your existing Nextcloud app.

@github-actions
Copy link
Copy Markdown

Codacy

Lint

TypemasterPR
Warnings4848
Errors1111

SpotBugs

CategoryBaseNew
Bad practice6565
Correctness6262
Dodgy code299299
Experimental11
Internationalization77
Malicious code vulnerability22
Multithreaded correctness3535
Performance4848
Security1818
Total537537

@tobiasKaminsky tobiasKaminsky merged commit f94adf3 into master Jul 22, 2025
20 of 22 checks passed
@tobiasKaminsky tobiasKaminsky deleted the bugfix/creating-client-on-main-thread branch July 22, 2025 09:55
@alperozturk96 alperozturk96 mentioned this pull request Jul 28, 2025
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

2 participants