From 5c6ecc179f0dfc1026a65531bcf923bbfe4ac1e9 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Mon, 23 Oct 2017 18:12:27 -0700 Subject: [PATCH] Don't panic in turbine with no classes ALLOW_MISSING_DEPENDENCIES=true can cause missing dependencies to be hidden from GenerateAndroidBuildActions, which is triggering the len(jars) == 0 check in compileJavaHeader. For the ALLOW_MISSING_DEPENDENCIES=true case the check is unnecessary, as the build rules will be replaced with runtime errors. On the off chance the check would have been hit in a real build, allow merge_zips to create an empty zip file if it is asked to. Test: m ALLOW_MISSING_DEPENDENCIES=true Change-Id: I3171f921d51229ddf38a1a647d32566658c673fa --- cmd/merge_zips/merge_zips.go | 2 +- java/java.go | 14 +++++--------- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/cmd/merge_zips/merge_zips.go b/cmd/merge_zips/merge_zips.go index e16c00ef9..207b161ca 100644 --- a/cmd/merge_zips/merge_zips.go +++ b/cmd/merge_zips/merge_zips.go @@ -78,7 +78,7 @@ func main() { // parse args flag.Parse() args := flag.Args() - if len(args) < 2 { + if len(args) < 1 { flag.Usage() os.Exit(1) } diff --git a/java/java.go b/java/java.go index 26514f33c..1f7ba65a6 100644 --- a/java/java.go +++ b/java/java.go @@ -689,15 +689,11 @@ func (j *Module) compileJavaHeader(ctx android.ModuleContext, srcFiles android.P var headerJar android.Path jars = append(jars, deps.staticHeaderJars...) - if len(jars) == 0 { - panic("The turbine.jar is empty without any sources and static libs.") - } else { - // we cannot skip the combine step for now if there is only one jar - // since we have to strip META-INF/TRANSITIVE dir from turbine.jar - combinedJar := android.PathForModuleOut(ctx, "turbine-combined", jarName) - TransformJarsToJar(ctx, combinedJar, "for turbine", jars, android.OptionalPath{}, false, []string{"META-INF"}) - headerJar = combinedJar - } + // we cannot skip the combine step for now if there is only one jar + // since we have to strip META-INF/TRANSITIVE dir from turbine.jar + combinedJar := android.PathForModuleOut(ctx, "turbine-combined", jarName) + TransformJarsToJar(ctx, combinedJar, "for turbine", jars, android.OptionalPath{}, false, []string{"META-INF"}) + headerJar = combinedJar if j.properties.Jarjar_rules != nil { jarjar_rules := android.PathForModuleSrc(ctx, *j.properties.Jarjar_rules)