summaryrefslogtreecommitdiff
path: root/java/com/google/devtools/build/android/desugar/Desugar.java
diff options
context:
space:
mode:
authorGoogler <noreply@google.com>2017-03-09 22:24:24 +0000
committerColin Cross <ccross@android.com>2017-03-13 17:20:56 -0700
commit035127d06ffbb1df5f888cc7014440b705e5b9a6 (patch)
treef520953e2b53bd18e214c45482a1026480e95daf /java/com/google/devtools/build/android/desugar/Desugar.java
parente0eaafddc031c3a942c03db65854eb534b0ab3db (diff)
downloaddesugar-035127d06ffbb1df5f888cc7014440b705e5b9a6.tar.gz
Remove bootclasspath fallback in Android desugaring tool
-- PiperOrigin-RevId: 149694683 MOS_MIGRATED_REVID=149694683 GitOrigin-RevId: 1ac5b786f2fb361a92ef8582f5e06e0891c832d8 Change-Id: I5366691fccb9786fcc8aa98a9ef06aa5b6cb294c
Diffstat (limited to 'java/com/google/devtools/build/android/desugar/Desugar.java')
-rw-r--r--java/com/google/devtools/build/android/desugar/Desugar.java24
1 files changed, 7 insertions, 17 deletions
diff --git a/java/com/google/devtools/build/android/desugar/Desugar.java b/java/com/google/devtools/build/android/desugar/Desugar.java
index 116b2b5..21fd984 100644
--- a/java/com/google/devtools/build/android/desugar/Desugar.java
+++ b/java/com/google/devtools/build/android/desugar/Desugar.java
@@ -162,16 +162,8 @@ class Desugar {
System.out.printf("Lambda classes will be written under %s%n", dumpDirectory);
}
- boolean allowDefaultMethods = options.minSdkVersion >= 24;
-
- ClassLoader parent;
- if (options.bootclasspath.isEmpty() && !options.allowEmptyBootclasspath) {
- // TODO(b/31547323): Require bootclasspath once Bazel always provides it. Using the tool's
- // bootclasspath as a fallback is iffy at best and produces wrong results at worst.
- parent = ClassLoader.getSystemClassLoader();
- } else {
- parent = new ThrowingClassLoader();
- }
+ checkState(!options.bootclasspath.isEmpty() || options.allowEmptyBootclasspath,
+ "Bootclasspath required to desugar %s", options.inputJar);
CoreLibraryRewriter rewriter =
new CoreLibraryRewriter(options.coreLibrary ? "__desugar__/" : "");
@@ -179,7 +171,8 @@ class Desugar {
IndexedJars appIndexedJar = new IndexedJars(ImmutableList.of(options.inputJar));
IndexedJars appAndClasspathIndexedJars = new IndexedJars(options.classpath, appIndexedJar);
ClassLoader loader =
- createClassLoader(rewriter, options.bootclasspath, appAndClasspathIndexedJars, parent);
+ createClassLoader(rewriter, options.bootclasspath, appAndClasspathIndexedJars);
+ boolean allowDefaultMethods = options.minSdkVersion >= 24;
boolean allowCallsToObjectsNonNull = options.minSdkVersion >= 19;
try (ZipFile in = new ZipFile(options.inputJar.toFile());
ZipOutputStream out =
@@ -299,14 +292,11 @@ class Desugar {
out.closeEntry();
}
- private static ClassLoader createClassLoader(
- CoreLibraryRewriter rewriter,
- List<Path> bootclasspath,
- IndexedJars appAndClasspathIndexedJars,
- ClassLoader parent)
- throws IOException {
+ private static ClassLoader createClassLoader(CoreLibraryRewriter rewriter,
+ List<Path> bootclasspath, IndexedJars appAndClasspathIndexedJars) throws IOException {
// Use a classloader that as much as possible uses the provided bootclasspath instead of
// the tool's system classloader. Unfortunately we can't do that for java. classes.
+ ClassLoader parent = new ThrowingClassLoader();
if (!bootclasspath.isEmpty()) {
parent = new HeaderClassLoader(new IndexedJars(bootclasspath), rewriter, parent);
}