aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Janak Ramakrishnan <janakr@google.com>2015-09-14 17:10:57 +0000
committerGravatar John Field <jfield@google.com>2015-09-15 20:25:26 +0000
commit097736ee9490e4ccf25cf56a201198f3a0388af7 (patch)
tree6e2d619ae7a0fa7d2b09c7066868ae1728f1fe15 /src
parentf9b1c3382f91329c2d1230db116d3af40544c473 (diff)
Package that is dependency of genquery cannot be null when genquery is being analyzed.
-- MOS_MIGRATED_REVID=103003180
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java19
1 files changed, 8 insertions, 11 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java b/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java
index 0f59428f61..737ab6da30 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java
@@ -177,18 +177,19 @@ public class GenQuery implements RuleConfiguredTargetFactory {
// The transitive closure of these targets is an upper estimate on the labels
// the query will touch
- @Nullable
private Set<Target> getScope(RuleContext context) {
List<Label> scopeLabels = context.attributes().get("scope", Type.LABEL_LIST);
Set<Target> scope = Sets.newHashSetWithExpectedSize(scopeLabels.size());
for (Label scopePart : scopeLabels) {
+ SkyFunction.Environment env = context.getAnalysisEnvironment().getSkyframeEnv();
+ PackageValue packageNode =
+ (PackageValue) env.getValue(PackageValue.key(scopePart.getPackageFragment()));
+ Preconditions.checkNotNull(
+ packageNode,
+ "Packages in transitive closure of scope '%s'"
+ + "were already loaded during the loading phase",
+ scopePart);
try {
- SkyFunction.Environment env = context.getAnalysisEnvironment().getSkyframeEnv();
- PackageValue packageNode = (PackageValue) env.getValue(
- PackageValue.key(scopePart.getPackageFragment()));
- if (packageNode == null) {
- return null;
- }
scope.add(packageNode.getPackage().getTarget(scopePart.getName()));
} catch (NoSuchTargetException e) {
throw new IllegalStateException(e);
@@ -236,10 +237,6 @@ public class GenQuery implements RuleConfiguredTargetFactory {
@Nullable
private byte[] executeQuery(RuleContext ruleContext, QueryOptions queryOptions,
Set<Target> scope, String query) throws InterruptedException {
-
- if (scope == null) {
- return null;
- }
SkyFunction.Environment env = ruleContext.getAnalysisEnvironment().getSkyframeEnv();
Pair<ImmutableMap<PackageIdentifier, Package>, Set<Label>> closureInfo =
constructPackageMap(env, scope);