aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build
diff options
context:
space:
mode:
authorGravatar gregce <gregce@google.com>2017-06-23 23:58:36 +0200
committerGravatar Marcel Hlopko <hlopko@google.com>2017-06-26 18:35:16 +0200
commitaacacfa05038884e2b13898c8152d7d4c12d4e03 (patch)
tree14d1819bf29758a5a43ebeeefb5bc043dc016d01 /src/main/java/com/google/devtools/build
parent43a8a9d8085a61662e4201b6b59b0b14b3bf07a3 (diff)
Fix NullPointerException when enable_data_binding is omitted.
DataBinding.isEnabled has outdated logic that enabled data binding for a rule even if only its deps use data binding. It's now required for all rules up the dependency chain to explictily enable data binding. RELNOTES: None. PiperOrigin-RevId: 159998478
Diffstat (limited to 'src/main/java/com/google/devtools/build')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/DataBinding.java15
1 files changed, 3 insertions, 12 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/DataBinding.java b/src/main/java/com/google/devtools/build/lib/rules/android/DataBinding.java
index eae687073f..5d0bf12bfd 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/DataBinding.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/DataBinding.java
@@ -14,7 +14,6 @@
package com.google.devtools.build.lib.rules.android;
import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.RuleConfiguredTarget;
import com.google.devtools.build.lib.analysis.RuleConfiguredTargetBuilder;
@@ -86,21 +85,13 @@ public final class DataBinding {
/**
* Should data binding support be enabled for this rule?
*
- * <p>This is true if either the rule or any of its transitive dependencies declares data binding
- * support in its attributes.
- *
* <p>Data binding incurs additional resource processing and compilation work as well as
* additional compile/runtime dependencies. But rules with data binding disabled will fail if
- * any data binding expressions appear in their layout resources.
+ * data binding expressions appear in their layout resources.
*/
public static boolean isEnabled(RuleContext ruleContext) {
- if (ruleContext.attributes().has("enable_data_binding", Type.BOOLEAN)
- && ruleContext.attributes().get("enable_data_binding", Type.BOOLEAN)) {
- return true;
- } else {
- return !Iterables.isEmpty(ruleContext.getPrerequisites("deps",
- RuleConfiguredTarget.Mode.TARGET, UsesDataBindingProvider.class));
- }
+ return ruleContext.attributes().has("enable_data_binding", Type.BOOLEAN)
+ && ruleContext.attributes().get("enable_data_binding", Type.BOOLEAN);
}
/**