aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/tools/android/java/com/google/devtools
diff options
context:
space:
mode:
authorGravatar kmb <kmb@google.com>2018-05-24 13:47:41 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-05-24 13:50:57 -0700
commitee5ea6bde9c774623c8083914b84f6a53dc82288 (patch)
tree9205ec8c4594a679f4522a8279b72a7d3688c2a8 /src/tools/android/java/com/google/devtools
parentd8e7f9c7531e44dfcd1f23a9cedea50ecac4d0f8 (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.java12
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;