Merge "Fix ImplicitStringConcatMany when run with jacoco"
diff --git a/ojluni/src/test/java/lang/String/concat/ImplicitStringConcatMany.java b/ojluni/src/test/java/lang/String/concat/ImplicitStringConcatMany.java
index cf0a121..8a209f3 100644
--- a/ojluni/src/test/java/lang/String/concat/ImplicitStringConcatMany.java
+++ b/ojluni/src/test/java/lang/String/concat/ImplicitStringConcatMany.java
@@ -137,6 +137,10 @@
for (Field f : ImplicitStringConcatMany.class.getDeclaredFields()) {
if (Modifier.isStatic(f.getModifiers())) {
String name = f.getName();
+ // Android-added: jacoco injects static fields and crashes (b/203822631).
+ if (f.getType() != String.class || !isConcatStringFieldName(name)) {
+ continue;
+ }
try {
f.set(null, name);
} catch (IllegalAccessException e) {
@@ -146,6 +150,17 @@
}
}
+
+ // Android-added: jacoco injects static fields and crashes (b/203822631).
+ static boolean isConcatStringFieldName(String name) {
+ // String fields in the test are named 's[0-9]{3}'
+ return (name.length() == 4 &&
+ name.charAt(0) == 's' &&
+ Character.isDigit(name.charAt(1)) &&
+ Character.isDigit(name.charAt(2)) &&
+ Character.isDigit(name.charAt(3)));
+ }
+
@Test
public void testImplicitStringConcatMany() {
String res =