aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools')
-rw-r--r--src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java4
-rw-r--r--src/main/java/com/google/devtools/build/skyframe/SkyFunctionName.java7
2 files changed, 10 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java b/src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java
index 59ff33ad48..6dc31eeaf6 100644
--- a/src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java
+++ b/src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java
@@ -1513,8 +1513,8 @@ public final class ParallelEvaluator implements Evaluator {
// graph stack.
while (!toVisit.isEmpty()) {
SkyKey key = toVisit.pop();
- NodeEntry entry = graph.get(key);
+ NodeEntry entry;
if (key == CHILDREN_FINISHED) {
// A marker node means we are done with all children of a node. Since all nodes have
// errors, we must have found errors in the children when that happens.
@@ -1548,6 +1548,8 @@ public final class ParallelEvaluator implements Evaluator {
SkyFunctionEnvironment env = new SkyFunctionEnvironment(key, directDeps, visitor);
env.setError(ErrorInfo.fromChildErrors(key, errorDeps));
env.commit(/*enqueueParents=*/false);
+ } else {
+ entry = graph.get(key);
}
Preconditions.checkNotNull(entry, key);
diff --git a/src/main/java/com/google/devtools/build/skyframe/SkyFunctionName.java b/src/main/java/com/google/devtools/build/skyframe/SkyFunctionName.java
index a214bd33de..af7474c506 100644
--- a/src/main/java/com/google/devtools/build/skyframe/SkyFunctionName.java
+++ b/src/main/java/com/google/devtools/build/skyframe/SkyFunctionName.java
@@ -38,6 +38,13 @@ public final class SkyFunctionName implements Serializable {
}
});
+ /**
+ * A well-known key type intended for testing only. The associated SkyKey should have a String
+ * argument.
+ */
+ // Needs to be after the cache is initialized.
+ public static final SkyFunctionName FOR_TESTING = SkyFunctionName.create("FOR_TESTING");
+
/** Create a SkyFunctionName identified by {@code name}. */
public static SkyFunctionName create(String name) {
try {