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

Fix crash in GutenbergContainerFragment #20862

Merged
merged 1 commit into from
Jun 7, 2024
Merged

Fix crash in GutenbergContainerFragment #20862

merged 1 commit into from
Jun 7, 2024

Conversation

aditi-bhatia
Copy link
Contributor

@aditi-bhatia aditi-bhatia commented May 22, 2024

Fixes #20831

This PR fixes a crash in GutenbergContainerFragment caused by gutenbergPropsBuilder being null. Since it is possible for gutenbergPropsBuilder == null if db == null in GutenbergEditorFragment.java (line 208), I've annotated it to be @NonNull and added a null check in the function calling it.


To Test:

I haven't been able to reproduce, so code check + smoke test the post editor.


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)

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

    • None

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 (strike-out the not-applying and unnecessary ones):

  • 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)

@aditi-bhatia aditi-bhatia added this to the 25.0 milestone May 22, 2024
@aditi-bhatia aditi-bhatia requested a review from irfano May 22, 2024 06:24
@wpmobilebot
Copy link
Contributor

wpmobilebot commented May 22, 2024

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
Versionpr20862-fa38edf
Commitfa38edf
Direct Downloadwordpress-prototype-build-pr20862-fa38edf.apk
Note: Google Login is not supported on these builds.

@wpmobilebot
Copy link
Contributor

wpmobilebot commented May 22, 2024

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
Versionpr20862-fa38edf
Commitfa38edf
Direct Downloadjetpack-prototype-build-pr20862-fa38edf.apk
Note: Google Login is not supported on these builds.

@aditi-bhatia aditi-bhatia requested a review from irfano May 23, 2024 05:35
@irfano
Copy link
Member

irfano commented May 23, 2024

I have good news: I was able to reproduce the crash.

  • Enable "Don't keep activities" from the developer settings. This will mimic a low memory state.
  • Add an unsupported block to a post from the web, e.g., "Blog posts".
  • Open the post from the mobile app.
  • Tap on the block and open the web editor.
  • Make a change and press the apply button.
before video
crash.webm

However, I have bad news. This fix only prevents the crash but results in an unexpected outcome. After making a change in the editor and tapping the apply button, the React Native editor logs numerous error messages and does not save the updated change. If we add a null check without addressing this issue, we may lose opportunity to track the actual problem and fix it.

I think the issue is related to low memory, but it may need further investigation. But, we could at least show a warning message to inform the user about the problem. Data loss is a critical issue, and if we cannot prevent it, we should at least inform the user. I am interested in your thoughts.

after video
after-fix.webm

@irfano irfano modified the milestones: 25.0, 25.1 May 27, 2024
@aditi-bhatia
Copy link
Contributor Author

aditi-bhatia commented May 29, 2024

Hi @irfano thank you for looking into it and finding a way to reproduce the issue. Since I wasn't able to reproduce it earlier, I initially assumed the issue was due to the db being null since that case was not being handled.

However, after reproducing the crash, it appears that actually isn't the root cause of the issue. The issue appears to stem from mCurrentGutenbergPropsBuilder becoming null (when it previously wasn't) by the time it reaches GutenbergEditorFragment.java - onActivityResult().

I tried a few things including trying to re-initialize the value of mCurrentGutenbergPropsBuilder if it's null, but this doesn't seem to fix the issue either:

                if (mCurrentGutenbergPropsBuilder == null) {
                    SavedInstanceDatabase db = SavedInstanceDatabase.Companion.getDatabase(context);
                    if (db != null) {
                        mCurrentGutenbergPropsBuilder = db.getParcel(ARG_GUTENBERG_PROPS_BUILDER,
                                GutenbergPropsBuilder.CREATOR);
                    }
               }

Since this seems to be a tricky issue, I'm wondering if you have any thoughts. I agree with your points above re: data loss and I think for now, we can display a notice to the user so that they are aware that the changes haven't saved. What do you think?

@irfano
Copy link
Member

irfano commented May 29, 2024

I tried reinitializing mCurrentGutenbergPropsBuilder. It fixes the crash but the issue still occurs, as you mentioned. I investigated further, and guess the issue is that GutenbergContainerFragment and GutenbergEditorFragment are recreated when navigating back from GutenbergWebViewActivity. This results in reinitialization of GutenbergContainerFragment.mWPAndroidGlueCode. Consequently, when calling WPAndroidGlueCode.replaceUnsupportedBlock(), mReplaceUnsupportedBlockCallback is null, which causes the issue.

Ideally, we shouldn't lose data when recreating an activity or fragment. I think the best solution is to be able to recreate and reuse all fragment members, even if the fragment is recreated. I tried to determine why mReplaceUnsupportedBlockCallback is null but couldn't find the reason yet. I am stopping my investigation for now; maybe you can look into it further.

As an alternative, we can add reinitializing mCurrentGutenbergPropsBuilder in onActivityResult, as you did above in this PR, and open another issue with our findings related to issue.

@wpmobilebot
Copy link
Contributor

Found 1 violations:

The PR caused some dependency changes (expand to see details)

 +--- project :libs:analytics
-|    \--- com.automattic:Automattic-Tracks-Android:5.1.0
+|    \--- com.automattic:Automattic-Tracks-Android:5.0.0
 +--- project :libs:editor
-|    +--- org.wordpress.gutenberg-mobile:react-native-gutenberg-bridge:v1.120.0-alpha1
-|    |    +--- com.facebook.fresco:animated-gif:2.0.0
-|    |    |    +--- com.parse.bolts:bolts-tasks:1.4.0
-|    |    |    +--- com.facebook.soloader:soloader:0.6.0 -> 0.10.5 (*)
-|    |    |    +--- com.facebook.fresco:fbcore:2.0.0 -> 3.1.3 (*)
-|    |    |    \--- com.facebook.fresco:animated-base:2.0.0
-|    |    |         +--- com.facebook.fresco:fbcore:2.0.0 -> 3.1.3 (*)
-|    |    |         +--- com.facebook.fresco:imagepipeline-base:2.0.0 -> 3.1.3 (*)
-|    |    |         +--- com.facebook.fresco:imagepipeline:2.0.0 -> 3.1.3 (*)
-|    |    |         +--- com.facebook.fresco:animated-drawable:2.0.0
-|    |    |         |    +--- com.facebook.fresco:imagepipeline:2.0.0 -> 3.1.3 (*)
-|    |    |         |    +--- com.facebook.fresco:drawee:2.0.0 -> 3.1.3 (*)
-|    |    |         |    \--- com.facebook.fresco:fbcore:2.0.0 -> 3.1.3 (*)
-|    |    |         \--- com.parse.bolts:bolts-tasks:1.4.0
-|    |    +--- com.google.android.material:material:1.2.1 -> 1.9.0 (*)
-|    |    +--- com.github.wordpress-mobile:react-native-video:5.2.0-wp-7
-|    |    |    +--- com.google.android.exoplayer:exoplayer:2.13.3
-|    |    |    |    +--- com.google.android.exoplayer:exoplayer-core:2.13.3
-|    |    |    |    |    +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
-|    |    |    |    |    +--- com.google.android.exoplayer:exoplayer-common:2.13.3
-|    |    |    |    |    |    +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
-|    |    |    |    |    |    \--- com.google.guava:guava:27.1-android
-|    |    |    |    |    |         +--- com.google.guava:failureaccess:1.0.1
-|    |    |    |    |    |         \--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
-|    |    |    |    |    \--- com.google.android.exoplayer:exoplayer-extractor:2.13.3
-|    |    |    |    |         +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
-|    |    |    |    |         \--- com.google.android.exoplayer:exoplayer-common:2.13.3 (*)
-|    |    |    |    +--- com.google.android.exoplayer:exoplayer-dash:2.13.3
-|    |    |    |    |    +--- com.google.android.exoplayer:exoplayer-core:2.13.3 (*)
-|    |    |    |    |    \--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
-|    |    |    |    +--- com.google.android.exoplayer:exoplayer-hls:2.13.3
-|    |    |    |    |    +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
-|    |    |    |    |    \--- com.google.android.exoplayer:exoplayer-core:2.13.3 (*)
-|    |    |    |    +--- com.google.android.exoplayer:exoplayer-smoothstreaming:2.13.3
-|    |    |    |    |    +--- com.google.android.exoplayer:exoplayer-core:2.13.3 (*)
-|    |    |    |    |    \--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
-|    |    |    |    +--- com.google.android.exoplayer:exoplayer-transformer:2.13.3
-|    |    |    |    |    +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
-|    |    |    |    |    \--- com.google.android.exoplayer:exoplayer-core:2.13.3 (*)
-|    |    |    |    \--- com.google.android.exoplayer:exoplayer-ui:2.13.3
-|    |    |    |         +--- com.google.android.exoplayer:exoplayer-core:2.13.3 (*)
-|    |    |    |         +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
-|    |    |    |         +--- androidx.recyclerview:recyclerview:1.1.0 -> 1.3.0 (*)
-|    |    |    |         \--- androidx.media:media:1.2.1 (*)
-|    |    |    +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
-|    |    |    +--- androidx.core:core:1.1.0 -> 1.12.0 (*)
-|    |    |    +--- androidx.media:media:1.1.0 -> 1.2.1 (*)
-|    |    |    +--- com.google.android.exoplayer:extension-okhttp:2.13.3
-|    |    |    |    +--- com.google.android.exoplayer:exoplayer-common:2.13.3 (*)
-|    |    |    |    +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
-|    |    |    |    \--- com.squareup.okhttp3:okhttp:3.12.11 -> 4.12.0 (*)
-|    |    |    \--- com.squareup.okhttp3:okhttp:${OKHTTP_VERSION} -> 4.12.0 (*)
-|    |    +--- com.github.wordpress-mobile:react-native-slider:3.0.2-wp-5
-|    |    +--- org.wordpress.react-native-libraries.v6:react-native-get-random-values:1.4.0
-|    |    +--- org.wordpress.react-native-libraries.v6:react-native-safe-area-context:4.8.2
-|    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.21 -> 1.9.22 (*)
-|    |    +--- org.wordpress.react-native-libraries.v6:react-native-screens:3.29.0
-|    |    |    +--- androidx.appcompat:appcompat:1.6.1 (*)
-|    |    |    +--- androidx.fragment:fragment:1.3.6 -> 1.6.2 (*)
-|    |    |    +--- androidx.coordinatorlayout:coordinatorlayout:1.2.0 (*)
-|    |    |    +--- androidx.swiperefreshlayout:swiperefreshlayout:1.1.0 (*)
-|    |    |    +--- com.google.android.material:material:1.9.0 (*)
-|    |    |    +--- androidx.core:core-ktx:1.9.0 -> 1.12.0 (*)
-|    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 1.9.10 (*)
-|    |    |    \--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 -> 2.6.2 (c)
-|    |    +--- org.wordpress.react-native-libraries.v6:react-native-svg:14.0.0
-|    |    +--- org.wordpress.react-native-libraries.v6:react-native-webview:13.6.1
-|    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.21 -> 1.9.22 (*)
-|    |    |    \--- androidx.webkit:webkit:1.4.0 -> 1.10.0 (*)
-|    |    +--- org.wordpress.react-native-libraries.v6:react-native-masked-view:0.3.0
-|    |    +--- org.wordpress.react-native-libraries.v6:react-native-clipboard:1.11.2
-|    |    +--- org.wordpress.react-native-libraries.v6:react-native-fast-image:8.5.11
-|    |    |    +--- com.github.bumptech.glide:glide:4.12.0 -> 4.16.0
-|    |    |    |    +--- com.github.bumptech.glide:gifdecoder:4.16.0
-|    |    |    |    |    \--- androidx.annotation:annotation:1.5.0 -> 1.6.0 (*)
-|    |    |    |    +--- com.github.bumptech.glide:disklrucache:4.16.0
-|    |    |    |    +--- com.github.bumptech.glide:annotations:4.16.0
-|    |    |    |    +--- androidx.fragment:fragment:1.3.6 -> 1.6.2 (*)
-|    |    |    |    +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 (*)
-|    |    |    |    +--- androidx.exifinterface:exifinterface:1.3.6 (*)
-|    |    |    |    \--- androidx.tracing:tracing:1.0.0 -> 1.1.0 (*)
-|    |    |    \--- com.github.bumptech.glide:okhttp3-integration:4.12.0
-|    |    |         +--- com.github.bumptech.glide:glide:4.12.0 -> 4.16.0 (*)
-|    |    |         +--- com.squareup.okhttp3:okhttp:3.9.1 -> 4.12.0 (*)
-|    |    |         \--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*)
-|    |    +--- org.wordpress.react-native-libraries.v6:react-native-reanimated:3.6.2
-|    |    |    +--- com.facebook.yoga:proguard-annotations:1.19.0
-|    |    |    +--- androidx.transition:transition:1.1.0 -> 1.4.1 (*)
-|    |    |    \--- androidx.core:core:1.9.0 -> 1.12.0 (*)
-|    |    +--- org.wordpress.react-native-libraries.v6:react-native-gesture-handler:2.14.1
-|    |    |    +--- org.wordpress.react-native-libraries.v6:react-native-reanimated:3.6.2 (*)
-|    |    |    +--- androidx.appcompat:appcompat:1.6.1 (*)
-|    |    |    +--- androidx.core:core-ktx:1.9.0 -> 1.12.0 (*)
-|    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.21 -> 1.9.22 (*)
-|    |    +--- org.wordpress.react-native-libraries.v6:react-native-linear-gradient:2.7.3
-|    |    +--- org.wordpress.gutenberg-mobile:react-native-aztec:v1.120.0-alpha1
-|    |    |    +--- androidx.legacy:legacy-support-v4:1.0.0 (*)
-|    |    |    +--- androidx.gridlayout:gridlayout:1.0.0
-|    |    |    |    +--- androidx.core:core:1.0.0 -> 1.12.0 (*)
-|    |    |    |    \--- androidx.legacy:legacy-support-core-ui:1.0.0 (*)
-|    |    |    +--- androidx.cardview:cardview:1.0.0 (*)
-|    |    |    +--- androidx.appcompat:appcompat:1.2.0 -> 1.6.1 (*)
-|    |    |    +--- androidx.recyclerview:recyclerview:1.1.0 -> 1.3.0 (*)
-|    |    |    +--- org.wordpress:aztec:v2.1.2 -> v2.1.3 (*)
-|    |    |    +--- org.wordpress.aztec:wordpress-shortcodes:v2.1.2 -> v2.1.3 (*)
-|    |    |    +--- org.wordpress.aztec:wordpress-comments:v2.1.2 -> v2.1.3 (*)
-|    |    |    +--- org.wordpress.aztec:glide-loader:v2.1.2
-|    |    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10 -> 1.9.10 (*)
-|    |    |    |    +--- org.wordpress:aztec:v2.1.2 -> v2.1.3 (*)
-|    |    |    |    \--- com.github.bumptech.glide:glide:4.10.0 -> 4.16.0 (*)
-|    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.9.10 (*)
-|    |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.9.10 (*)
+|    +--- org.wordpress.gutenberg-mobile:react-native-gutenberg-bridge:v1.119.0-alpha2
+|    |    +--- com.facebook.fresco:animated-gif:2.0.0
+|    |    |    +--- com.parse.bolts:bolts-tasks:1.4.0
+|    |    |    +--- com.facebook.soloader:soloader:0.6.0 -> 0.10.5 (*)
+|    |    |    +--- com.facebook.fresco:fbcore:2.0.0 -> 3.1.3 (*)
+|    |    |    \--- com.facebook.fresco:animated-base:2.0.0
+|    |    |         +--- com.facebook.fresco:fbcore:2.0.0 -> 3.1.3 (*)
+|    |    |         +--- com.facebook.fresco:imagepipeline-base:2.0.0 -> 3.1.3 (*)
+|    |    |         +--- com.facebook.fresco:imagepipeline:2.0.0 -> 3.1.3 (*)
+|    |    |         +--- com.facebook.fresco:animated-drawable:2.0.0
+|    |    |         |    +--- com.facebook.fresco:imagepipeline:2.0.0 -> 3.1.3 (*)
+|    |    |         |    +--- com.facebook.fresco:drawee:2.0.0 -> 3.1.3 (*)
+|    |    |         |    \--- com.facebook.fresco:fbcore:2.0.0 -> 3.1.3 (*)
+|    |    |         \--- com.parse.bolts:bolts-tasks:1.4.0
+|    |    +--- com.google.android.material:material:1.2.1 -> 1.9.0 (*)
+|    |    +--- com.github.wordpress-mobile:react-native-video:5.2.0-wp-7
+|    |    |    +--- com.google.android.exoplayer:exoplayer:2.13.3
+|    |    |    |    +--- com.google.android.exoplayer:exoplayer-core:2.13.3
+|    |    |    |    |    +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
+|    |    |    |    |    +--- com.google.android.exoplayer:exoplayer-common:2.13.3
+|    |    |    |    |    |    +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
+|    |    |    |    |    |    \--- com.google.guava:guava:27.1-android
+|    |    |    |    |    |         +--- com.google.guava:failureaccess:1.0.1
+|    |    |    |    |    |         \--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
+|    |    |    |    |    \--- com.google.android.exoplayer:exoplayer-extractor:2.13.3
+|    |    |    |    |         +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
+|    |    |    |    |         \--- com.google.android.exoplayer:exoplayer-common:2.13.3 (*)
+|    |    |    |    +--- com.google.android.exoplayer:exoplayer-dash:2.13.3
+|    |    |    |    |    +--- com.google.android.exoplayer:exoplayer-core:2.13.3 (*)
+|    |    |    |    |    \--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
+|    |    |    |    +--- com.google.android.exoplayer:exoplayer-hls:2.13.3
+|    |    |    |    |    +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
+|    |    |    |    |    \--- com.google.android.exoplayer:exoplayer-core:2.13.3 (*)
+|    |    |    |    +--- com.google.android.exoplayer:exoplayer-smoothstreaming:2.13.3
+|    |    |    |    |    +--- com.google.android.exoplayer:exoplayer-core:2.13.3 (*)
+|    |    |    |    |    \--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
+|    |    |    |    +--- com.google.android.exoplayer:exoplayer-transformer:2.13.3
+|    |    |    |    |    +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
+|    |    |    |    |    \--- com.google.android.exoplayer:exoplayer-core:2.13.3 (*)
+|    |    |    |    \--- com.google.android.exoplayer:exoplayer-ui:2.13.3
+|    |    |    |         +--- com.google.android.exoplayer:exoplayer-core:2.13.3 (*)
+|    |    |    |         +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
+|    |    |    |         +--- androidx.recyclerview:recyclerview:1.1.0 -> 1.3.0 (*)
+|    |    |    |         \--- androidx.media:media:1.2.1 (*)
+|    |    |    +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
+|    |    |    +--- androidx.core:core:1.1.0 -> 1.12.0 (*)
+|    |    |    +--- androidx.media:media:1.1.0 -> 1.2.1 (*)
+|    |    |    +--- com.google.android.exoplayer:extension-okhttp:2.13.3
+|    |    |    |    +--- com.google.android.exoplayer:exoplayer-common:2.13.3 (*)
+|    |    |    |    +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
+|    |    |    |    \--- com.squareup.okhttp3:okhttp:3.12.11 -> 4.12.0 (*)
+|    |    |    \--- com.squareup.okhttp3:okhttp:${OKHTTP_VERSION} -> 4.12.0 (*)
+|    |    +--- com.github.wordpress-mobile:react-native-slider:3.0.2-wp-5
+|    |    +--- org.wordpress.react-native-libraries.v6:react-native-get-random-values:1.4.0
+|    |    +--- org.wordpress.react-native-libraries.v6:react-native-safe-area-context:4.8.2
+|    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.21 -> 1.9.22 (*)
+|    |    +--- org.wordpress.react-native-libraries.v6:react-native-screens:3.29.0
+|    |    |    +--- androidx.appcompat:appcompat:1.6.1 (*)
+|    |    |    +--- androidx.fragment:fragment:1.3.6 -> 1.6.2 (*)
+|    |    |    +--- androidx.coordinatorlayout:coordinatorlayout:1.2.0 (*)
+|    |    |    +--- androidx.swiperefreshlayout:swiperefreshlayout:1.1.0 (*)
+|    |    |    +--- com.google.android.material:material:1.9.0 (*)
+|    |    |    +--- androidx.core:core-ktx:1.9.0 -> 1.12.0 (*)
+|    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 1.9.10 (*)
+|    |    |    \--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 -> 2.6.2 (c)
+|    |    +--- org.wordpress.react-native-libraries.v6:react-native-svg:14.0.0
+|    |    +--- org.wordpress.react-native-libraries.v6:react-native-webview:13.6.1
+|    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.21 -> 1.9.22 (*)
+|    |    |    \--- androidx.webkit:webkit:1.4.0 -> 1.10.0 (*)
+|    |    +--- org.wordpress.react-native-libraries.v6:react-native-masked-view:0.3.0
+|    |    +--- org.wordpress.react-native-libraries.v6:react-native-clipboard:1.11.2
+|    |    +--- org.wordpress.react-native-libraries.v6:react-native-fast-image:8.5.11
+|    |    |    +--- com.github.bumptech.glide:glide:4.12.0 -> 4.16.0
+|    |    |    |    +--- com.github.bumptech.glide:gifdecoder:4.16.0
+|    |    |    |    |    \--- androidx.annotation:annotation:1.5.0 -> 1.6.0 (*)
+|    |    |    |    +--- com.github.bumptech.glide:disklrucache:4.16.0
+|    |    |    |    +--- com.github.bumptech.glide:annotations:4.16.0
+|    |    |    |    +--- androidx.fragment:fragment:1.3.6 -> 1.6.2 (*)
+|    |    |    |    +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 (*)
+|    |    |    |    +--- androidx.exifinterface:exifinterface:1.3.6 (*)
+|    |    |    |    \--- androidx.tracing:tracing:1.0.0 -> 1.1.0 (*)
+|    |    |    \--- com.github.bumptech.glide:okhttp3-integration:4.12.0
+|    |    |         +--- com.github.bumptech.glide:glide:4.12.0 -> 4.16.0 (*)
+|    |    |         +--- com.squareup.okhttp3:okhttp:3.9.1 -> 4.12.0 (*)
+|    |    |         \--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*)
+|    |    +--- org.wordpress.react-native-libraries.v6:react-native-reanimated:3.6.2
+|    |    |    +--- com.facebook.yoga:proguard-annotations:1.19.0
+|    |    |    +--- androidx.transition:transition:1.1.0 -> 1.4.1 (*)
+|    |    |    \--- androidx.core:core:1.9.0 -> 1.12.0 (*)
+|    |    +--- org.wordpress.react-native-libraries.v6:react-native-gesture-handler:2.14.1
+|    |    |    +--- org.wordpress.react-native-libraries.v6:react-native-reanimated:3.6.2 (*)
+|    |    |    +--- androidx.appcompat:appcompat:1.6.1 (*)
+|    |    |    +--- androidx.core:core-ktx:1.9.0 -> 1.12.0 (*)
+|    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.21 -> 1.9.22 (*)
+|    |    +--- org.wordpress.react-native-libraries.v6:react-native-linear-gradient:2.7.3
+|    |    +--- org.wordpress.gutenberg-mobile:react-native-aztec:v1.119.0-alpha2
+|    |    |    +--- androidx.legacy:legacy-support-v4:1.0.0 (*)
+|    |    |    +--- androidx.gridlayout:gridlayout:1.0.0
+|    |    |    |    +--- androidx.core:core:1.0.0 -> 1.12.0 (*)
+|    |    |    |    \--- androidx.legacy:legacy-support-core-ui:1.0.0 (*)
+|    |    |    +--- androidx.cardview:cardview:1.0.0 (*)
+|    |    |    +--- androidx.appcompat:appcompat:1.2.0 -> 1.6.1 (*)
+|    |    |    +--- androidx.recyclerview:recyclerview:1.1.0 -> 1.3.0 (*)
+|    |    |    +--- org.wordpress:aztec:v2.1.2 -> v2.1.3 (*)
+|    |    |    +--- org.wordpress.aztec:wordpress-shortcodes:v2.1.2 -> v2.1.3 (*)
+|    |    |    +--- org.wordpress.aztec:wordpress-comments:v2.1.2 -> v2.1.3 (*)
+|    |    |    +--- org.wordpress.aztec:glide-loader:v2.1.2
+|    |    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10 -> 1.9.10 (*)
+|    |    |    |    +--- org.wordpress:aztec:v2.1.2 -> v2.1.3 (*)
+|    |    |    |    \--- com.github.bumptech.glide:glide:4.10.0 -> 4.16.0 (*)
+|    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.9.10 (*)
+|    |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.9.10 (*)
-|    \--- com.automattic.tracks:crashlogging:5.1.0
+|    \--- com.automattic.tracks:crashlogging:5.0.0
-+--- org.wordpress:fluxc:{strictly trunk-8b7eeade00f33c5b4296722fb3854b3a32e06ad8} -> trunk-8b7eeade00f33c5b4296722fb3854b3a32e06ad8
-|    +--- org.wordpress:wellsql:2.0.0
-|    |    +--- androidx.annotation:annotation:1.2.0 -> 1.6.0 (*)
-|    |    \--- org.wordpress.wellsql:wellsql-annotations:2.0.0
-|    +--- org.wordpress.fluxc:fluxc-annotations:trunk-8b7eeade00f33c5b4296722fb3854b3a32e06ad8
-|    +--- org.greenrobot:eventbus:3.3.1
-|    |    \--- org.greenrobot:eventbus-java:3.3.1
-|    +--- com.squareup.okhttp3:okhttp:4.9.0 -> 4.12.0 (*)
-|    +--- com.android.volley:volley:1.1.1 -> 1.2.1
-|    +--- androidx.paging:paging-runtime:2.1.2
-|    |    +--- androidx.paging:paging-common:2.1.2
-|    |    |    +--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*)
-|    |    |    \--- androidx.arch.core:core-common:2.0.0 -> 2.2.0 (*)
-|    |    +--- androidx.arch.core:core-runtime:2.0.0 -> 2.2.0 (*)
-|    |    +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.6.2 (*)
-|    |    +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.6.2 (*)
-|    |    \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.3.0 (*)
-|    +--- com.goterl:lazysodium-android:5.0.2
-|    +--- net.java.dev.jna:jna:5.5.0
-|    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.20 -> 1.9.10 (*)
-|    +--- org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.6.20 -> 1.9.22 (*)
-|    +--- androidx.appcompat:appcompat:1.0.2 -> 1.6.1 (*)
-|    +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.3.0 (*)
-|    +--- androidx.exifinterface:exifinterface:1.0.0 -> 1.3.6 (*)
-|    +--- androidx.security:security-crypto:1.0.0
-|    |    +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
-|    |    \--- com.google.crypto.tink:tink-android:1.5.0
-|    +--- com.squareup.okhttp3:okhttp-urlconnection:4.9.0 -> 4.9.2 (*)
-|    +--- com.google.code.gson:gson:2.8.5 -> 2.10.1
-|    +--- org.apache.commons:commons-text:1.10.0
-|    |    \--- org.apache.commons:commons-lang3:3.12.0
-|    +--- androidx.room:room-runtime:2.4.2 -> 2.5.0
-|    |    +--- androidx.annotation:annotation-experimental:1.1.0 -> 1.3.1 (*)
-|    |    +--- androidx.arch.core:core-runtime:2.0.1 -> 2.2.0 (*)
-|    |    +--- androidx.room:room-common:2.5.0
-|    |    |    +--- androidx.annotation:annotation:1.3.0 -> 1.6.0 (*)
-|    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20 -> 1.9.10 (*)
-|    |    +--- androidx.sqlite:sqlite:2.3.0
-|    |    |    +--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*)
-|    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 -> 1.9.22 (*)
-|    |    \--- androidx.sqlite:sqlite-framework:2.3.0
-|    |         +--- androidx.annotation:annotation:1.2.0 -> 1.6.0 (*)
-|    |         +--- androidx.sqlite:sqlite:2.3.0 (*)
-|    |         \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 -> 1.9.22 (*)
-|    +--- androidx.room:room-ktx:2.4.2 -> 2.5.0
-|    |    +--- androidx.room:room-common:2.5.0 (*)
-|    |    +--- androidx.room:room-runtime:2.5.0 (*)
-|    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 -> 1.9.22 (*)
-|    |    \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 (*)
-|    +--- com.google.dagger:dagger:2.42 -> 2.50
-|    |    \--- javax.inject:javax.inject:1
-|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.9 -> 1.7.3 (*)
-|    \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9 -> 1.7.3 (*)
++--- org.wordpress:fluxc:{strictly 2.79.0} -> 2.79.0
+|    +--- org.wordpress:wellsql:2.0.0
+|    |    +--- androidx.annotation:annotation:1.2.0 -> 1.6.0 (*)
+|    |    \--- org.wordpress.wellsql:wellsql-annotations:2.0.0
+|    +--- org.wordpress.fluxc:fluxc-annotations:2.79.0
+|    +--- org.greenrobot:eventbus:3.3.1
+|    |    \--- org.greenrobot:eventbus-java:3.3.1
+|    +--- com.squareup.okhttp3:okhttp:4.9.0 -> 4.12.0 (*)
+|    +--- com.android.volley:volley:1.1.1 -> 1.2.1
+|    +--- androidx.paging:paging-runtime:2.1.2
+|    |    +--- androidx.paging:paging-common:2.1.2
+|    |    |    +--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*)
+|    |    |    \--- androidx.arch.core:core-common:2.0.0 -> 2.2.0 (*)
+|    |    +--- androidx.arch.core:core-runtime:2.0.0 -> 2.2.0 (*)
+|    |    +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.6.2 (*)
+|    |    +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.6.2 (*)
+|    |    \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.3.0 (*)
+|    +--- com.goterl:lazysodium-android:5.0.2
+|    +--- net.java.dev.jna:jna:5.5.0
+|    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.20 -> 1.9.10 (*)
+|    +--- org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.6.20 -> 1.9.22 (*)
+|    +--- androidx.appcompat:appcompat:1.0.2 -> 1.6.1 (*)
+|    +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.3.0 (*)
+|    +--- androidx.exifinterface:exifinterface:1.0.0 -> 1.3.6 (*)
+|    +--- androidx.security:security-crypto:1.0.0
+|    |    +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
+|    |    \--- com.google.crypto.tink:tink-android:1.5.0
+|    +--- com.squareup.okhttp3:okhttp-urlconnection:4.9.0 -> 4.9.2 (*)
+|    +--- com.google.code.gson:gson:2.8.5 -> 2.10.1
+|    +--- org.apache.commons:commons-text:1.10.0
+|    |    \--- org.apache.commons:commons-lang3:3.12.0
+|    +--- androidx.room:room-runtime:2.4.2 -> 2.5.0
+|    |    +--- androidx.annotation:annotation-experimental:1.1.0 -> 1.3.1 (*)
+|    |    +--- androidx.arch.core:core-runtime:2.0.1 -> 2.2.0 (*)
+|    |    +--- androidx.room:room-common:2.5.0
+|    |    |    +--- androidx.annotation:annotation:1.3.0 -> 1.6.0 (*)
+|    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20 -> 1.9.10 (*)
+|    |    +--- androidx.sqlite:sqlite:2.3.0
+|    |    |    +--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*)
+|    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 -> 1.9.22 (*)
+|    |    \--- androidx.sqlite:sqlite-framework:2.3.0
+|    |         +--- androidx.annotation:annotation:1.2.0 -> 1.6.0 (*)
+|    |         +--- androidx.sqlite:sqlite:2.3.0 (*)
+|    |         \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 -> 1.9.22 (*)
+|    +--- androidx.room:room-ktx:2.4.2 -> 2.5.0
+|    |    +--- androidx.room:room-common:2.5.0 (*)
+|    |    +--- androidx.room:room-runtime:2.5.0 (*)
+|    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 -> 1.9.22 (*)
+|    |    \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 (*)
+|    +--- com.google.dagger:dagger:2.42 -> 2.50
+|    |    \--- javax.inject:javax.inject:1
+|    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.9 -> 1.7.3 (*)
+|    \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9 -> 1.7.3 (*)
 +--- org.wordpress:login:1.15.0
-|    \--- org.wordpress:fluxc:trunk-ed60798b4d96ec19863c74b0f525e2e20f4525db -> trunk-8b7eeade00f33c5b4296722fb3854b3a32e06ad8 (*)
+|    \--- org.wordpress:fluxc:trunk-ed60798b4d96ec19863c74b0f525e2e20f4525db -> 2.79.0 (*)
-+--- com.automattic:Automattic-Tracks-Android:{strictly 5.1.0} -> 5.1.0 (*)
++--- com.automattic:Automattic-Tracks-Android:{strictly 5.0.0} -> 5.0.0 (*)
-\--- com.automattic.tracks:crashlogging:5.1.0 (*)
+\--- com.automattic.tracks:crashlogging:5.0.0 (*)

Please review and act accordingly

@aditi-bhatia aditi-bhatia reopened this Jun 5, 2024
Copy link

sonarcloud bot commented Jun 5, 2024

Quality Gate Passed Quality Gate passed

Issues
0 New issues
0 Accepted issues

Measures
0 Security Hotspots
No data about Coverage
0.0% Duplication on New Code

See analysis details on SonarCloud

@irfano irfano added the Gutenberg Editing and display of Gutenberg blocks. label Jun 6, 2024
Copy link
Member

@irfano irfano left a comment

Choose a reason for hiding this comment

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

LGTM! 👍🏻

@irfano irfano merged commit 8f259b9 into trunk Jun 7, 2024
17 checks passed
@irfano irfano deleted the issue/20831-crash branch June 7, 2024 12:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Gutenberg Editing and display of Gutenberg blocks. [Type] Crash
Projects
None yet
3 participants