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

[Reader] Fix UninitializedPropertyAccessException in ReaderFragment #20143

Merged

Conversation

RenanLukas
Copy link
Contributor

@RenanLukas RenanLukas commented Feb 7, 2024

Fixes #20142


To Test:

I couldn't reproduce this crash. The ViewModel is initialized when ReaderFragment#onViewCreated is called. The crash log tells us that ReaderFragment#onSaveInstanceState was called before ReaderFragment#onViewCreated, since ViewModel was not initialized.

There wasn't a single time where I was able to make onSaveInstanceState be called before onViewCreated:

com.jetpack.android.prealpha         E  RL-> ReaderFragment initViewModel
com.jetpack.android.prealpha         E  RL-> WPMainActivity onSaveInstanceState
com.jetpack.android.prealpha         E  RL-> ReaderFragment onSaveInstanceState

onSaveInstanceState is called after onStop in recent versions and might be called before or after (no guarantees on order) onPause in older versions. This means for this crash to happen, the Activity should've been stopped before onViewCreated is called.

For now I've added a check to see if the ViewModel property was initialized before using it to avoid the crash.


Regression Notes

  1. Potential unintended areas of impact

    • None
  2. What I did to test those areas of impact (or what existing automated tests I relied on)

    • Manual testing
  3. What automated tests I added (or what prevented me from doing so)

    --


PR Submission Checklist:

  • I have completed the Regression Notes.
  • I have considered adding accessibility improvements for my changes.
  • I have considered if this change warrants user-facing release notes and have added them to RELEASE-NOTES.txt if necessary.

Testing Checklist:

  • WordPress.com sites and self-hosted Jetpack sites.
  • Portrait and landscape orientations.
  • Light and dark modes.
  • Fonts: Larger, smaller and bold text.
  • High contrast.
  • Talkback.
  • Languages with large words or with letters/accents not frequently used in English.
  • Right-to-left languages. (Even if translation isn’t complete, formatting should still respect the right-to-left layout)
  • Large and small screen sizes. (Tablet and smaller phones)
  • Multi-tasking: Split screen and Pop-up view. (Android 10 or higher)

@dangermattic
Copy link
Collaborator

1 Warning
⚠️ PR is not assigned to a milestone.

Generated by 🚫 Danger

@wpmobilebot
Copy link
Contributor

WordPress📲 You can test the changes from this Pull Request in WordPress by scanning the QR code below to install the corresponding build.
App NameWordPress WordPress
FlavorJalapeno
Build TypeDebug
Versionpr20143-6b94752
Commit6b94752
Direct Downloadwordpress-prototype-build-pr20143-6b94752.apk
Note: Google Login is not supported on these builds.

@wpmobilebot
Copy link
Contributor

Jetpack📲 You can test the changes from this Pull Request in Jetpack by scanning the QR code below to install the corresponding build.
App NameJetpack Jetpack
FlavorJalapeno
Build TypeDebug
Versionpr20143-6b94752
Commit6b94752
Direct Downloadjetpack-prototype-build-pr20143-6b94752.apk
Note: Google Login is not supported on these builds.

Copy link
Contributor

@daniloercoli daniloercoli left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@RenanLukas RenanLukas merged commit 06ab0d7 into release/24.2 Feb 7, 2024
21 of 27 checks passed
@RenanLukas RenanLukas deleted the issue/20142-reader-crash-onsavedinstancestate branch February 7, 2024 18:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants