diff options
author | kmb <kmb@google.com> | 2018-05-24 13:47:41 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-05-24 13:50:57 -0700 |
commit | ee5ea6bde9c774623c8083914b84f6a53dc82288 (patch) | |
tree | 9205ec8c4594a679f4522a8279b72a7d3688c2a8 /src/tools/android/java/com/google/devtools | |
parent | d8e7f9c7531e44dfcd1f23a9cedea50ecac4d0f8 (diff) |
tolerate missing outer classes for interface desugaring
PiperOrigin-RevId: 197946783
Diffstat (limited to 'src/tools/android/java/com/google/devtools')
-rw-r--r-- | src/tools/android/java/com/google/devtools/build/android/desugar/ClassVsInterface.java | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/tools/android/java/com/google/devtools/build/android/desugar/ClassVsInterface.java b/src/tools/android/java/com/google/devtools/build/android/desugar/ClassVsInterface.java index 272445451b..205870a1b5 100644 --- a/src/tools/android/java/com/google/devtools/build/android/desugar/ClassVsInterface.java +++ b/src/tools/android/java/com/google/devtools/build/android/desugar/ClassVsInterface.java @@ -13,7 +13,6 @@ // limitations under the License. package com.google.devtools.build.android.desugar; -import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Preconditions.checkState; import com.google.devtools.build.android.desugar.io.BitFlags; @@ -54,9 +53,14 @@ class ClassVsInterface { if (result == null) { // We could just load the outer class here, but this tolerates incomplete classpaths better. // Note the outer class should be in the Jar we're desugaring, so it should always be there. - ClassReader outerClass = checkNotNull(classpath.readIfKnown(outerName), - "Couldn't find outer class %s of %s", outerName, innerName); - result = BitFlags.isInterface(outerClass.getAccess()); + ClassReader outerClass = classpath.readIfKnown(outerName); + if (outerClass == null) { + System.err.printf("WARNING: Couldn't find outer class %s of %s%n", outerName, innerName); + // TODO(b/79155927): Make this an error when sources of this problem are fixed. + result = false; // assume it's a class if we can't find it (b/79155927) + } else { + result = BitFlags.isInterface(outerClass.getAccess()); + } known.put(outerName, result); } return result; |