Snap for 10447354 from 1038050d444f26280553507b4c02f9a771605896 to mainline-cellbroadcast-release

Change-Id: I1234bf86375d9cb3db39271613da3080fd86595a
diff --git a/Android.bp b/Android.bp
index aad52a3..98a9da3 100644
--- a/Android.bp
+++ b/Android.bp
@@ -58,7 +58,9 @@
 
 java_library {
     name: "jacocoagent",
+    host_supported: true,
     installable: true,
+    manifest: "org.jacoco.agent/src/MANIFEST.MF",
 
     apex_available: [
         "//apex_available:anyapex",
@@ -79,12 +81,24 @@
     // system apps.
     // Note: we still may need to update the source code to cut dependencies in
     // mandatory jacoco classes.
-    exclude_srcs: [
-        "org.jacoco.core/src/org/jacoco/core/runtime/ModifiedSystemClassRuntime.java",
-        "org.jacoco.agent.rt/src/org/jacoco/agent/rt/internal/PreMain.java",
-        "org.jacoco.agent.rt/src/org/jacoco/agent/rt/internal/CoverageTransformer.java",
-        "org.jacoco.agent.rt/src/org/jacoco/agent/rt/internal/JmxRegistration.java",
-    ],
+    target: {
+        android: {
+            exclude_srcs: [
+                "org.jacoco.core/src/org/jacoco/core/runtime/ModifiedSystemClassRuntime.java",
+                "org.jacoco.agent.rt/src/org/jacoco/agent/rt/internal/PreMain.java",
+                "org.jacoco.agent.rt/src/org/jacoco/agent/rt/internal/CoverageTransformer.java",
+                "org.jacoco.agent.rt/src/org/jacoco/agent/rt/internal/JmxRegistration.java",
+            ],
+        },
+        host: {
+            dist: {
+                targets: [
+                    "dist_files",
+                    "apps_only",
+                ],
+            },
+        }
+    },
 
     // In order to include Jacoco in core libraries, we cannot depend on
     // anything in the bootclasspath (or we would create dependency cycle).
@@ -99,6 +113,12 @@
         "asm-commons-9.2",
         "asm-tree-9.2",
     ],
+    errorprone: {
+        javacflags: [
+            "-Xep:EqualsHashCode:WARN",
+            "-Xep:ReturnValueIgnored:WARN",
+        ],
+    },
 }
 
 // Generates stubs containing the classes that will be referenced by instrumented bytecode.
@@ -127,14 +147,34 @@
     manifest: "org.jacoco.cli/src/MANIFEST.MF",
 
     srcs: [
-        "org.jacoco.core/src/**/*.java",
-        "org.jacoco.report/src/**/*.java",
         "org.jacoco.cli/src/**/*.java",
     ],
 
+    static_libs: [
+        "jacoco-report",
+        "jacoco-core",
+    ],
+
+    dist: {
+        targets: [
+            "dist_files",
+            "apps_only",
+        ],
+    },
+
+    // b/267831518: Pin tradefed and dependencies to Java 11.
+    java_version: "11",
+}
+
+java_library_host {
+    name: "jacoco-core",
+
+    srcs: [
+        "org.jacoco.core/src/**/*.java",
+    ],
+
     java_resource_dirs: [
         "org.jacoco.core/src",
-        "org.jacoco.report/src",
     ],
 
     static_libs: [
@@ -144,10 +184,32 @@
         "args4j-2.0.28",
     ],
 
-    dist: {
-        targets: [
-            "dist_files",
-            "apps_only",
+    // b/267831518: Pin tradefed and dependencies to Java 11.
+    java_version: "11",
+
+    errorprone: {
+        javacflags: [
+            "-Xep:EqualsHashCode:WARN",
+            "-Xep:ReturnValueIgnored:WARN",
         ],
     },
 }
+
+java_library_host {
+    name: "jacoco-report",
+
+    srcs: [
+        "org.jacoco.report/src/**/*.java",
+    ],
+
+    // b/267831518: Pin tradefed and dependencies to Java 11.
+    java_version: "11",
+
+    java_resource_dirs: [
+        "org.jacoco.report/src",
+    ],
+
+    static_libs: [
+        "jacoco-core",
+    ],
+}
diff --git a/org.jacoco.agent/src/MANIFEST.MF b/org.jacoco.agent/src/MANIFEST.MF
new file mode 100644
index 0000000..fb315f3
--- /dev/null
+++ b/org.jacoco.agent/src/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Premain-Class: org.jacoco.agent.rt.internal.PreMain
+
diff --git a/org.jacoco.core/src/org/jacoco/core/internal/instr/ClassFieldProbeArrayStrategy.java b/org.jacoco.core/src/org/jacoco/core/internal/instr/ClassFieldProbeArrayStrategy.java
index 7a54b6d..3e26d1b 100644
--- a/org.jacoco.core/src/org/jacoco/core/internal/instr/ClassFieldProbeArrayStrategy.java
+++ b/org.jacoco.core/src/org/jacoco/core/internal/instr/ClassFieldProbeArrayStrategy.java
@@ -29,7 +29,7 @@
 	 * Frame stack with a single boolean array.
 	 */
 	private static final Object[] FRAME_STACK_ARRZ = new Object[] {
-			InstrSupport.DATAFIELD_DESC };
+			InstrSupport.DATAFIELD_DESC_UNQUALIFIED };
 
 	/**
 	 * Empty frame locals.
diff --git a/org.jacoco.core/src/org/jacoco/core/internal/instr/InstrSupport.java b/org.jacoco.core/src/org/jacoco/core/internal/instr/InstrSupport.java
index c125112..a805e0f 100644
--- a/org.jacoco.core/src/org/jacoco/core/internal/instr/InstrSupport.java
+++ b/org.jacoco.core/src/org/jacoco/core/internal/instr/InstrSupport.java
@@ -79,7 +79,8 @@
 	 * <code>boolean[]</code>).
 	 */
 	// BEGIN android-change
-	public static final String DATAFIELD_DESC = "Lorg/jacoco/core/data/IExecutionData;";
+	public static final String DATAFIELD_DESC_UNQUALIFIED = "org/jacoco/core/data/IExecutionData";
+	public static final String DATAFIELD_DESC = "L" + DATAFIELD_DESC_UNQUALIFIED + ";";
 	// END android-change
 
 	// === Init Method ===
diff --git a/org.jacoco.core/src/org/jacoco/core/internal/instr/InterfaceFieldProbeArrayStrategy.java b/org.jacoco.core/src/org/jacoco/core/internal/instr/InterfaceFieldProbeArrayStrategy.java
index decd234..9c36ba7 100644
--- a/org.jacoco.core/src/org/jacoco/core/internal/instr/InterfaceFieldProbeArrayStrategy.java
+++ b/org.jacoco.core/src/org/jacoco/core/internal/instr/InterfaceFieldProbeArrayStrategy.java
@@ -29,7 +29,7 @@
 	 * Frame stack with a single boolean array.
 	 */
 	private static final Object[] FRAME_STACK_ARRZ = new Object[] {
-			InstrSupport.DATAFIELD_DESC };
+			InstrSupport.DATAFIELD_DESC_UNQUALIFIED };
 
 	/**
 	 * Empty frame locals.
diff --git a/org.jacoco.core/src/org/jacoco/core/internal/instr/ProbeInserter.java b/org.jacoco.core/src/org/jacoco/core/internal/instr/ProbeInserter.java
index 20794f6..59dff4b 100644
--- a/org.jacoco.core/src/org/jacoco/core/internal/instr/ProbeInserter.java
+++ b/org.jacoco.core/src/org/jacoco/core/internal/instr/ProbeInserter.java
@@ -154,7 +154,7 @@
 		int pos = 0; // Current variable position
 		while (idx < nLocal || pos <= variable) {
 			if (pos == variable) {
-				newLocal[newIdx++] = InstrSupport.DATAFIELD_DESC;
+				newLocal[newIdx++] = InstrSupport.DATAFIELD_DESC_UNQUALIFIED;
 				pos++;
 			} else {
 				if (idx < nLocal) {
diff --git a/org.jacoco.core/src/org/jacoco/core/runtime/LoggerRuntime.java b/org.jacoco.core/src/org/jacoco/core/runtime/LoggerRuntime.java
index 1fc2b70..f877b83 100644
--- a/org.jacoco.core/src/org/jacoco/core/runtime/LoggerRuntime.java
+++ b/org.jacoco.core/src/org/jacoco/core/runtime/LoggerRuntime.java
@@ -145,7 +145,7 @@
 
 		mv.visitInsn(Opcodes.ICONST_0);
 		mv.visitInsn(Opcodes.AALOAD);
-		mv.visitTypeInsn(Opcodes.CHECKCAST, InstrSupport.DATAFIELD_DESC);
+		mv.visitTypeInsn(Opcodes.CHECKCAST, InstrSupport.DATAFIELD_DESC_UNQUALIFIED);
 
 		// Stack[0]: [Z
 
diff --git a/org.jacoco.core/src/org/jacoco/core/runtime/RuntimeData.java b/org.jacoco.core/src/org/jacoco/core/runtime/RuntimeData.java
index 00fb4b0..5be410f 100644
--- a/org.jacoco.core/src/org/jacoco/core/runtime/RuntimeData.java
+++ b/org.jacoco.core/src/org/jacoco/core/runtime/RuntimeData.java
@@ -271,7 +271,7 @@
 
 		// stack[0]: [Z
 
-		mv.visitTypeInsn(Opcodes.CHECKCAST, InstrSupport.DATAFIELD_DESC);
+		mv.visitTypeInsn(Opcodes.CHECKCAST, InstrSupport.DATAFIELD_DESC_UNQUALIFIED);
 	}
 
 }