Clarify error message for bootclasspath whitelist.
Before this CL, the build could fail with error messages such as: Error: out/target/common/obj/JAVA_LIBRARIES/core-oj_intermediates/classes.jar contains class file jdk/internal/HotSpotIntrinsicCandidate.class, which is not in the whitelist This error message was only moderately helpful because it left a few questions unanswered or misled ("Whitelist for what?", "Where does the whitelist live?", "Is it a whitelist of class files or of packages?"). This CL clarifies that: - it's a whitelist of packages allowed on the bootclasspath, - where it lives (currently build/make/core/tasks/check_boot_jars/package_whitelist.txt) which makes the error message more actionable. Test: manually checked that the error message now looks okay. Bug: 17434570 Change-Id: I2f52a5e2eb532bc4945bedf9811de5857f67a9a3
This commit is contained in:
parent
1d7d1eb65e
commit
7b179ae177
|
@ -39,7 +39,7 @@ def LoadWhitelist(filename):
|
|||
return True
|
||||
|
||||
|
||||
def CheckJar(jar):
|
||||
def CheckJar(whitelist_path, jar):
|
||||
"""Check a jar file.
|
||||
"""
|
||||
# Get the list of files inside the jar file.
|
||||
|
@ -55,8 +55,9 @@ def CheckJar(jar):
|
|||
package_name = package_name.replace('/', '.')
|
||||
# Skip class without a package name
|
||||
if package_name and not whitelist_re.match(package_name):
|
||||
print >> sys.stderr, ('Error: %s contains class file %s, which is not in the whitelist'
|
||||
% (jar, f))
|
||||
print >> sys.stderr, ('Error: %s contains class file %s, whose package name %s is not '
|
||||
'in the whitelist %s of packages allowed on the bootclasspath.'
|
||||
% (jar, f, package_name, whitelist_path))
|
||||
return False
|
||||
return True
|
||||
|
||||
|
@ -65,13 +66,14 @@ def main(argv):
|
|||
if len(argv) < 2:
|
||||
print __doc__
|
||||
return 1
|
||||
whitelist_path = argv[0]
|
||||
|
||||
if not LoadWhitelist(argv[0]):
|
||||
if not LoadWhitelist(whitelist_path):
|
||||
return 1
|
||||
|
||||
passed = True
|
||||
for jar in argv[1:]:
|
||||
if not CheckJar(jar):
|
||||
if not CheckJar(whitelist_path, jar):
|
||||
passed = False
|
||||
if not passed:
|
||||
return 1
|
||||
|
|
Loading…
Reference in New Issue