Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

try to avoid NPE for currentConversation #4261

Merged
merged 1 commit into from
Sep 24, 2024

Conversation

mahibi
Copy link
Collaborator

@mahibi mahibi commented Sep 24, 2024

fix #4190

On gplay console the following NPE was reported for the line

participantPermissions = ParticipantPermissions(spreedCapabilities, currentConversation!!)

E FATAL EXCEPTION: main
Process: com.nextcloud.talk2, PID: 6626
java.lang.NullPointerException
at com.nextcloud.talk.chat.ChatActivity.initObservers$lambda$13(ChatActivity.kt:583)
at com.nextcloud.talk.chat.ChatActivity.$r8$lambda$QKH5JCFLmCzRMlSJ-EV-m4IW5ig(Unknown Source:0)

which seems that currentConversation was null. If it would have been spreedCapabilities, then the error would have been thrown in the line before..

A reason MAY BE that the observer is triggered before setData on the ViewModel is executed. While this fix is just not executing code when currentConversation is null, it's unsure if it will follow up problems (like an empty chat) or if the observer is triggered another time when currentConversation is available.

So it's just a hotfix.
To improve the situation in the long term, we should move more logic to viewModel and only use Flow instead to mix it with LiveData.

🏁 Checklist

  • ⛑️ Tests (unit and/or integration) are included or not needed
  • 🔖 Capability is checked or not needed
  • 🔙 Backport requests are created or not needed: /backport to stable-xx.x
  • 📅 Milestone is set
  • 🌸 PR title is meaningful (if it should be in the changelog: is it meaningful to users?)

@mahibi mahibi added the 3. to review Waiting for reviews label Sep 24, 2024
@mahibi mahibi added this to the 20.0.2 milestone Sep 24, 2024
@mahibi mahibi self-assigned this Sep 24, 2024
On gplay console the following NPE was reported for the line

participantPermissions = ParticipantPermissions(spreedCapabilities, currentConversation!!)

 E  FATAL EXCEPTION: main
          Process: com.nextcloud.talk2, PID: 6626
          java.lang.NullPointerException
          at com.nextcloud.talk.chat.ChatActivity.initObservers$lambda$13(ChatActivity.kt:583)
          at com.nextcloud.talk.chat.ChatActivity.$r8$lambda$QKH5JCFLmCzRMlSJ-EV-m4IW5ig(Unknown Source:0)

which seems that currentConversation was null. If it would have been spreedCapabilities, then the error would have been thrown in the line before..

A reason MAY BE that the observer is triggered before setData on the ViewModel is executed.
While this fix is just not executing code when currentConversation is null, it's unsure if it will follow up problems (like an empty chat) or if the observer is triggered another time when currentConversation is available.

So it's just a hotfix.
To improve the situation in the long term, we should move more logic to viewModel and only use Flow instead to mix it with LiveData.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
@sowjanyakch sowjanyakch force-pushed the bugfix/4190/avoidNpeCurrentConversation branch from 41e5ba1 to b78267d Compare September 24, 2024 13:53
Copy link
Contributor

Codacy

Lint

TypemasterPR
Warnings8696
Errors131131

SpotBugs

CategoryBaseNew
Bad practice66
Correctness1111
Dodgy code7979
Internationalization33
Malicious code vulnerability33
Performance66
Security11
Total109109

Lint increased!

Copy link
Contributor

APK file: https://www.kaminsky.me/nc-dev/android-artifacts/4261-talk.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 Talk app.

@sowjanyakch sowjanyakch merged commit c327007 into master Sep 24, 2024
16 of 18 checks passed
@sowjanyakch sowjanyakch deleted the bugfix/4190/avoidNpeCurrentConversation branch September 24, 2024 14:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3. to review Waiting for reviews
Projects
None yet
Development

Successfully merging this pull request may close these issues.

NPE in ChatActivity#initObservers
2 participants