From 40fa0d9a56e8b29219f37cdc8743b63c7b65ab55 Mon Sep 17 00:00:00 2001 From: kmb Date: Tue, 6 Feb 2018 13:43:30 -0800 Subject: drop debug info when loading classes in desugar as a workaround for https://bugs.openjdk.java.net/browse/JDK-8066981 RELNOTES: None. PiperOrigin-RevId: 184732576 GitOrigin-RevId: e85e280645f579ffd5511a41553e95713c80177d Change-Id: Ic2e2372810c649b0376183b011441e70f08d57d1 --- .../build/android/desugar/HeaderClassLoader.java | 3 ++- .../build/android/desugar/b72690624_testdata.jar | Bin 0 -> 3088 bytes 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 test/java/com/google/devtools/build/android/desugar/b72690624_testdata.jar diff --git a/java/com/google/devtools/build/android/desugar/HeaderClassLoader.java b/java/com/google/devtools/build/android/desugar/HeaderClassLoader.java index 0a757bf..77d99bb 100644 --- a/java/com/google/devtools/build/android/desugar/HeaderClassLoader.java +++ b/java/com/google/devtools/build/android/desugar/HeaderClassLoader.java @@ -58,7 +58,8 @@ class HeaderClassLoader extends ClassLoader { // Have ASM compute maxs so we don't need to figure out how many formal parameters there are ClassWriter writer = new ClassWriter(ClassWriter.COMPUTE_MAXS); ImmutableList interfaceFieldNames = getFieldsIfReaderIsInterface(reader); - reader.accept(new CodeStubber(writer, interfaceFieldNames), 0); + // TODO(kmb): Consider SKIP_CODE and stubbing everything so class loader doesn't verify code + reader.accept(new CodeStubber(writer, interfaceFieldNames), ClassReader.SKIP_DEBUG); bytecode = writer.toByteArray(); } catch (IOException e) { throw new IOError(e); diff --git a/test/java/com/google/devtools/build/android/desugar/b72690624_testdata.jar b/test/java/com/google/devtools/build/android/desugar/b72690624_testdata.jar new file mode 100644 index 0000000..6cca3a0 Binary files /dev/null and b/test/java/com/google/devtools/build/android/desugar/b72690624_testdata.jar differ -- cgit v1.2.3