Fixed
Status Update
Comments
ma...@bokhorst.biz <ma...@bokhorst.biz> #3
Thank you for the quick fix.
Is there an ETA for the next release?
Is there an ETA for the next release?
se...@google.com <se...@google.com> #4
2.2.0-rc01 should be out this week.
ma...@bokhorst.biz <ma...@bokhorst.biz> #5
Project: platform/frameworks/support
Branch: androidx-master-dev
commit a1957df3709a06f4e6482fb0e4d39ded4f230a70
Author: Rahul Ravikumar <rahulrav@google.com>
Date: Mon Jul 29 09:48:05 2019
Workaround NPE in PersistableBundle.getExtras().
Test: Existing unit tests pass. Ran integration test app.
Fixes: b/138441699
Change-Id: I0b48e0009a7d83c343a3d26112b94c057470c281
M work/workmanager/src/main/java/androidx/work/impl/background/systemjob/SystemJobService.java
https://android-review.googlesource.com/1092870
https://goto.google.com/android-sha1/a1957df3709a06f4e6482fb0e4d39ded4f230a70
Branch: androidx-master-dev
commit a1957df3709a06f4e6482fb0e4d39ded4f230a70
Author: Rahul Ravikumar <rahulrav@google.com>
Date: Mon Jul 29 09:48:05 2019
Workaround NPE in PersistableBundle.getExtras().
Test: Existing unit tests pass. Ran integration test app.
Fixes:
Change-Id: I0b48e0009a7d83c343a3d26112b94c057470c281
M work/workmanager/src/main/java/androidx/work/impl/background/systemjob/SystemJobService.java
se...@google.com <se...@google.com> #6
se...@google.com <se...@google.com>
ma...@bokhorst.biz <ma...@bokhorst.biz> #7
This crash is taking apps down (not mine anymore, which was confirmed by the reporter of the crash). So, I think this issue deserves at least some attention.
se...@google.com <se...@google.com> #8
Related
se...@google.com <se...@google.com> #9
Test case that reproduces crash prior to P
@Test
//@SdkSuppress(maxSdkVersion = 27) /* this is for testing before P crash */
public void testSpanRangeOldValueCalculation() throws Exception {
// this test is ported from CTS
// DynamicLayoutTest.testReflow_afterSpanChangedShouldNotThrowException
String className = "android.text.DynamicLayout$ChangeWatcher";
Class<?> watcherClass = Class.forName(className, false,
getClass().getClassLoader());
SpannableBuilder builder = new SpannableBuilder(watcherClass, "crash crash crash!!");
TypefaceSpan span = mock(TypefaceSpan.class);
builder.setSpan(span, 1, 4, SPAN_EXCLUSIVE_EXCLUSIVE);
// this DynamicLayout causes the replace/insert before position 1 below to crash prior to P
new DynamicLayout(builder, new TextPaint(), Integer.MAX_VALUE,
Layout.Alignment.ALIGN_NORMAL, 1.0f, 1.0f, true);
try {
builder.replace(1, 1, "Hello there\n\n");
} catch (Throwable e) {
throw new RuntimeException("Inserting text into DynamicLayout should not crash", e);
}
}
ma...@bokhorst.biz <ma...@bokhorst.biz> #10
I see good progress here ;-)
se...@google.com <se...@google.com> #11
Fix coming in the next release.
It's a platform DynamicLayout bug, but since it's running through emoji2 we have an opportunity to backport it prior to P :party:.
ap...@google.com <ap...@google.com> #12
Project: platform/frameworks/support
Branch: androidx-main
commit 96445c4b96e57ac060ea06c88e477622f28a2e00
Author: Sean McQuillan <seanmcq@google.com>
Date: Tue Mar 08 12:35:32 2022
Backport platform DynamicLayout crashfix to emoji2
Backport of Android P crashfix ( b/67926915 ) to emoji2.
This causes insert and replace calls to not crash when they happen
adjacent to spans that are EXCLUSIVE_EXCLUSIVE.
Previously, the range would be negative which would cause incorrect
integer math inside of DynamicLayout. The new behavior is to never pass
negative ranges by ressetting start to 0 before passing to DynamicLayout
which causes more reflow and avoids a crash.
This was previously fixed on platform and is covered by CTS test
DynamicLayoutTest#testReflow_afterSpanChangedShouldNotThrowException()
Fixes: b/216891011
Test: ./gradlew :e2:e2:cAT
Relnote: "Backport editor crash fix from Android P to EditText that is
configured to use emoji2 (platform bug b/67926915 )."
Change-Id: Ifd70914816fdb732aae34690666d790a6fc9783a
M emoji2/emoji2/src/main/java/androidx/emoji2/text/SpannableBuilder.java
M emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/SpannableBuilderTest.java
https://android-review.googlesource.com/2016855
Branch: androidx-main
commit 96445c4b96e57ac060ea06c88e477622f28a2e00
Author: Sean McQuillan <seanmcq@google.com>
Date: Tue Mar 08 12:35:32 2022
Backport platform DynamicLayout crashfix to emoji2
Backport of Android P crashfix (
This causes insert and replace calls to not crash when they happen
adjacent to spans that are EXCLUSIVE_EXCLUSIVE.
Previously, the range would be negative which would cause incorrect
integer math inside of DynamicLayout. The new behavior is to never pass
negative ranges by ressetting start to 0 before passing to DynamicLayout
which causes more reflow and avoids a crash.
This was previously fixed on platform and is covered by CTS test
DynamicLayoutTest#testReflow_afterSpanChangedShouldNotThrowException()
Fixes:
Test: ./gradlew :e2:e2:cAT
Relnote: "Backport editor crash fix from Android P to EditText that is
configured to use emoji2 (platform bug
Change-Id: Ifd70914816fdb732aae34690666d790a6fc9783a
M emoji2/emoji2/src/main/java/androidx/emoji2/text/SpannableBuilder.java
M emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/SpannableBuilderTest.java
Description
Component used: androidx.emoji2:emoji2
Version used: 1.0.1
Devices/Android versions reproduced on: Huawei BAH2-W19 and probably others