nextcloud/talk-android

NPE (initMessageHolders (ChatActivity.kt:1424))

mahibi opened this issue · 0 comments

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