-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Conversation
📲 You can test the changes from this Pull Request in WordPress by scanning the QR code below to install the corresponding build.
|
📲 You can test the changes from this Pull Request in Jetpack by scanning the QR code below to install the corresponding build.
|
.../editor/src/main/java/org/wordpress/android/editor/gutenberg/GutenbergContainerFragment.java
Outdated
Show resolved
Hide resolved
I have good news: I was able to reproduce the crash.
before videocrash.webmHowever, 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 videoafter-fix.webm |
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 However, after reproducing the crash, it appears that actually isn't the root cause of the issue. The issue appears to stem from I tried a few things including trying to re-initialize the value of
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? |
I tried reinitializing 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 As an alternative, we can add reinitializing |
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
|
5b84d73
to
fa38edf
Compare
Quality Gate passedIssues Measures |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! 👍🏻
Fixes #20831
This PR fixes a crash in
GutenbergContainerFragment
caused bygutenbergPropsBuilder
being null. Since it is possible forgutenbergPropsBuilder == null
ifdb == null
inGutenbergEditorFragment.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
Potential unintended areas of impact
What I did to test those areas of impact (or what existing automated tests I relied on)
What automated tests I added (or what prevented me from doing so)
PR Submission Checklist:
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)