diff options
author | Googler <noreply@google.com> | 2017-03-09 22:24:24 +0000 |
---|---|---|
committer | Colin Cross <ccross@android.com> | 2017-03-13 17:20:56 -0700 |
commit | 035127d06ffbb1df5f888cc7014440b705e5b9a6 (patch) | |
tree | f520953e2b53bd18e214c45482a1026480e95daf /java/com/google/devtools/build/android/desugar/Desugar.java | |
parent | e0eaafddc031c3a942c03db65854eb534b0ab3db (diff) | |
download | desugar-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.java | 24 |
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); } |