nextcloud / talk-android

📱😀 Video & audio calls through Nextcloud on Android
Other
511 stars 221 forks source link

NPE (initMessageHolders (ChatActivity.kt:1424)) #3891

Open mahibi opened 1 month ago

mahibi commented 1 month ago

Steps to reproduce

Copied from Google play console. could not yet reproduce it & may occur randomly

Expected behaviour

no crash

Actual behaviour

Exception java.lang.NullPointerException:
  at com.nextcloud.talk.chat.ChatActivity.initMessageHolders (ChatActivity.kt:1424)
  at com.nextcloud.talk.chat.ChatActivity.initAdapter (ChatActivity.kt:1364)
  at com.nextcloud.talk.chat.ChatActivity.access$initAdapter (ChatActivity.kt:250)
  at com.nextcloud.talk.chat.ChatActivity$initObservers$2.invoke (ChatActivity.kt:686)
  at com.nextcloud.talk.chat.ChatActivity$initObservers$2.invoke (ChatActivity.kt:670)
  at com.nextcloud.talk.chat.ChatActivity$sam$androidx_lifecycle_Observer$0.onChanged
  at androidx.lifecycle.LiveData.considerNotify (LiveData.java:133)
  at androidx.lifecycle.LiveData.dispatchingValue (LiveData.java:146)
  at androidx.lifecycle.LiveData$ObserverWrapper.activeStateChanged (LiveData.java:483)
  at androidx.lifecycle.LiveData$LifecycleBoundObserver.onStateChanged (LiveData.java:440)
  at androidx.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent (LifecycleRegistry.kt:322)
  at androidx.lifecycle.LifecycleRegistry.forwardPass (LifecycleRegistry.kt:258)
  at androidx.lifecycle.LifecycleRegistry.sync (LifecycleRegistry.kt:294)
  at androidx.lifecycle.LifecycleRegistry.moveToState (LifecycleRegistry.kt:143)
  at androidx.lifecycle.LifecycleRegistry.handleLifecycleEvent (LifecycleRegistry.kt:126)
  at androidx.lifecycle.ReportFragment$Companion.dispatch$lifecycle_runtime_release (ReportFragment.kt:190)
  at androidx.lifecycle.ReportFragment$LifecycleCallbacks.onActivityPostStarted (ReportFragment.kt:119)
  at android.app.Activity.dispatchActivityPostStarted (Activity.java:1506)
  at android.app.Activity.performStart (Activity.java:9047)
  at android.app.ActivityThread.handleStartActivity (ActivityThread.java:4198)
  at android.app.servertransaction.TransactionExecutor.performLifecycleSequence (TransactionExecutor.java:225)
  at android.app.servertransaction.TransactionExecutor.cycleToPath (TransactionExecutor.java:205)
  at android.app.servertransaction.TransactionExecutor.executeLifecycleState (TransactionExecutor.java:177)
  at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:98)
  at android.app.ClientTransactionHandler.executeTransaction (ClientTransactionHandler.java:68)
  at android.app.ActivityThread.handleRelaunchActivityLocally (ActivityThread.java:6454)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2695)
  at android.os.Handler.dispatchMessage (Handler.java:106)
  at android.os.Looper.loopOnce (Looper.java:230)
  at android.os.Looper.loop (Looper.java:319)
  at android.app.ActivityThread.main (ActivityThread.java:8919)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:578)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1103)

It seems like currentConversation is null in

val payload = MessagePayload(
    roomToken,
    ConversationUtils.isParticipantOwnerOrModerator(currentConversation!!),
    profileBottomSheet
)

but i have no idea how it could be null at this point. The code that leads here is only executed in GetCapabilitiesSuccessState, which in turn is only triggered by GetRoomSuccessState which sets the currentConversation.

Nextcloud Talk app version

19.0.0