aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java13
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/JackAspect.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/JackCompilationHelper.java12
6 files changed, 27 insertions, 11 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java
index dd650e04a6..0f52356e57 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java
@@ -99,6 +99,9 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory {
getTransitiveResourceContainers(ruleContext, ImmutableList.of("resources", "deps")),
javaCommon, androidCommon, javaSemantics, androidSemantics, tools,
ImmutableList.<String>of("deps"));
+ if (builder == null) {
+ return null;
+ }
return builder.build();
} catch (RuleConfigurationException e) {
Preconditions.checkArgument(ruleContext.hasErrors(),
@@ -256,6 +259,9 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory {
JavaTargetAttributes resourceClasses = androidCommon.init(
javaSemantics, androidSemantics, tools, resourceApk, AndroidIdlProvider.EMPTY,
ruleContext.getConfiguration().isCodeCoverageEnabled(), true);
+ if (resourceClasses == null) {
+ return null;
+ }
Artifact deployJar = createDeployJar(ruleContext, javaSemantics, androidCommon, resourceClasses,
ruleContext.getImplicitOutputArtifact(AndroidRuleClasses.ANDROID_BINARY_DEPLOY_JAR));
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java
index f3f047e24e..9826c2ec05 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java
@@ -330,6 +330,9 @@ public class AndroidCommon {
}
jackCompilationHelper = initJack(helper.getAttributes(), javaSemantics);
+ if (jackCompilationHelper == null) {
+ return null;
+ }
initJava(
helper, artifactsBuilder, collectJavaCompilationArgs, resourceApk.getResourceJavaSrcJar());
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java
index 9e5559b78b..af4e4fa794 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java
@@ -97,8 +97,10 @@ public abstract class AndroidLibrary implements RuleConfiguredTargetFactory {
false,
null /* proguardCfgOut */);
- androidCommon.init(javaSemantics, androidSemantics, tools,
- resourceApk, transitiveIdlImportData, false, true);
+ if (androidCommon.init(javaSemantics, androidSemantics, tools,
+ resourceApk, transitiveIdlImportData, false, true) == null) {
+ return null;
+ }
Artifact classesJar = mergeJarsFromSrcs(ruleContext,
ruleContext.getImplicitOutputArtifact(AndroidRuleClasses.ANDROID_LIBRARY_CLASS_JAR));
@@ -145,9 +147,10 @@ public abstract class AndroidLibrary implements RuleConfiguredTargetFactory {
JavaCommon javaCommon = new JavaCommon(ruleContext, javaSemantics);
AndroidCommon androidCommon = new AndroidCommon(ruleContext, javaCommon);
ResourceApk resourceApk = ResourceApk.fromTransitiveResources(transitiveResources);
- androidCommon.init(javaSemantics, androidSemantics, tools,
- resourceApk, transitiveIdlImportData, false, true);
-
+ if (androidCommon.init(javaSemantics, androidSemantics, tools,
+ resourceApk, transitiveIdlImportData, false, true) == null) {
+ return null;
+ }
RuleConfiguredTargetBuilder targetBuilder = androidCommon.addTransitiveInfoProviders(
new RuleConfiguredTargetBuilder(ruleContext), tools);
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
index 103dcc4bc6..9f719402c1 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
@@ -551,6 +551,7 @@ public final class AndroidRuleClasses {
.value(env.getLabel("//tools/android/jack:resource_extractor")))
.add(attr("$android_jack", LABEL)
.cfg(HOST)
+ .singleArtifact()
.value(env.getLabel("//tools/android/jack:android_jack")))
.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/JackAspect.java b/src/main/java/com/google/devtools/build/lib/rules/android/JackAspect.java
index 236ce567d7..61f9fb5165 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/JackAspect.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/JackAspect.java
@@ -100,6 +100,9 @@ public final class JackAspect implements ConfiguredAspectFactory {
.addDeps(getPotentialDependency(ruleContext, "deps"))
.addRuntimeDeps(getPotentialDependency(ruleContext, "runtime_deps"))
.build();
+ if (jackHelper == null) {
+ return null;
+ }
JackLibraryProvider result =
JavaCommon.isNeverLink(ruleContext)
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/JackCompilationHelper.java b/src/main/java/com/google/devtools/build/lib/rules/android/JackCompilationHelper.java
index f0ff9554d8..247a37ffeb 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/JackCompilationHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/JackCompilationHelper.java
@@ -808,13 +808,13 @@ public final class JackCompilationHelper {
.getConfiguration()
.getFragment(AndroidConfiguration.class)
.isJackSanityChecked();
- FilesToRunProvider jackBinary =
- Preconditions.checkNotNull(ruleContext.getExecutablePrerequisite("$jack", Mode.HOST));
- FilesToRunProvider jillBinary =
- Preconditions.checkNotNull(ruleContext.getExecutablePrerequisite("$jill", Mode.HOST));
+ FilesToRunProvider jackBinary = ruleContext.getExecutablePrerequisite("$jack", Mode.HOST);
+ FilesToRunProvider jillBinary = ruleContext.getExecutablePrerequisite("$jill", Mode.HOST);
FilesToRunProvider resourceExtractorBinary =
- Preconditions.checkNotNull(
- ruleContext.getExecutablePrerequisite("$resource_extractor", Mode.HOST));
+ ruleContext.getExecutablePrerequisite("$resource_extractor", Mode.HOST);
+ if (ruleContext.hasErrors()) {
+ return null;
+ }
return new JackCompilationHelper(
Preconditions.checkNotNull(ruleContext),