Return raw SkyValue instead of wrapped ValueWithMetadata. -- MOS_MIGRATED_REVID=101377320
diff --git a/src/main/java/com/google/devtools/build/skyframe/InMemoryNodeEntry.java b/src/main/java/com/google/devtools/build/skyframe/InMemoryNodeEntry.java index 4c19c8f..a47626d 100644 --- a/src/main/java/com/google/devtools/build/skyframe/InMemoryNodeEntry.java +++ b/src/main/java/com/google/devtools/build/skyframe/InMemoryNodeEntry.java
@@ -156,9 +156,9 @@ } @Override - public synchronized ValueWithMetadata getValueWithMetadata() { + public synchronized SkyValue getValueMaybeWithMetadata() { Preconditions.checkState(isDone(), "no value until done: %s", this); - return ValueWithMetadata.wrapWithMetadata(value); + return value; } @Override
diff --git a/src/main/java/com/google/devtools/build/skyframe/NodeEntry.java b/src/main/java/com/google/devtools/build/skyframe/NodeEntry.java index ed9904d..daf1ffc 100644 --- a/src/main/java/com/google/devtools/build/skyframe/NodeEntry.java +++ b/src/main/java/com/google/devtools/build/skyframe/NodeEntry.java
@@ -84,12 +84,14 @@ /** - * Returns the {@link SkyValue} for this entry and the metadata associated with it (Like events - * and errors). This method may only be called after the evaluation of this node is complete, - * i.e., after {@link #setValue} has been called. + * Returns raw {@link SkyValue} stored in this entry, which may include metadata associated with + * it (like events and errors). This method may only be called after the evaluation of this node + * is complete, i.e., after {@link #setValue} has been called. + * + * <p>Use the static methods of {@link ValueWithMetadata} to extract metadata if necessary. */ @ThreadSafe - ValueWithMetadata getValueWithMetadata(); + SkyValue getValueMaybeWithMetadata(); /** * Returns the value, even if dirty or changed. Returns null otherwise.
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 ac27ee0..949e25e 100644 --- a/src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java +++ b/src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java
@@ -1127,7 +1127,11 @@ // always the case in a keepGoing evaluation, since it is assumed that done nodes do not // need to be traversed. In this case, we hope the caller is tolerant of a possibly empty // result, and return prematurely. - bubbleErrorInfo = ImmutableMap.of(errorKey, graph.get(errorKey).getValueWithMetadata()); + bubbleErrorInfo = + ImmutableMap.of( + errorKey, + ValueWithMetadata.wrapWithMetadata( + graph.get(errorKey).getValueMaybeWithMetadata())); } } @@ -1649,7 +1653,9 @@ "Value cannot have error before evaluation started", key, value); return ValueWithMetadata.wrapWithMetadata(value); } - return isDoneForBuild(entry) ? entry.getValueWithMetadata() : null; + return isDoneForBuild(entry) + ? ValueWithMetadata.wrapWithMetadata(entry.getValueMaybeWithMetadata()) + : null; } @Nullable
diff --git a/src/test/java/com/google/devtools/build/skyframe/NotifyingInMemoryGraph.java b/src/test/java/com/google/devtools/build/skyframe/NotifyingInMemoryGraph.java index f327fc5..0adaabb 100644 --- a/src/test/java/com/google/devtools/build/skyframe/NotifyingInMemoryGraph.java +++ b/src/test/java/com/google/devtools/build/skyframe/NotifyingInMemoryGraph.java
@@ -135,9 +135,9 @@ } @Override - public ValueWithMetadata getValueWithMetadata() { + public SkyValue getValueMaybeWithMetadata() { graphListener.accept(myKey, EventType.GET_VALUE_WITH_METADATA, Order.BEFORE, this); - return super.getValueWithMetadata(); + return super.getValueMaybeWithMetadata(); } } }