diff options
author | twerth <twerth@google.com> | 2018-04-11 07:19:32 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-04-11 07:21:09 -0700 |
commit | 9635fc649ba7370186effbafe658ecc80fa3cd47 (patch) | |
tree | 9422084565a6381b22b15426059afd4ce97cefa5 /src/main/java/com/google | |
parent | 6a5b0772c6e5fedc912949663de8b79503df5e78 (diff) |
Fix NPE in action graph dump.
RELNOTES: None
PiperOrigin-RevId: 192445971
Diffstat (limited to 'src/main/java/com/google')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java index 066fbcac7f..c900a61300 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java @@ -779,15 +779,19 @@ public final class SequencedSkyframeExecutor extends SkyframeExecutor { SkyKey key = skyKeyAndNodeEntry.getKey(); SkyFunctionName functionName = key.functionName(); try { - if (functionName.equals(SkyFunctions.CONFIGURED_TARGET)) { - actionGraphDump.dumpConfiguredTarget((ConfiguredTargetValue) entry.getValue()); - } else if (functionName.equals(SkyFunctions.ASPECT)) { - AspectValue aspectValue = (AspectValue) entry.getValue(); - AspectKey aspectKey = aspectValue.getKey(); - ConfiguredTargetValue configuredTargetValue = - (ConfiguredTargetValue) - memoizingEvaluator.getExistingValue(aspectKey.getBaseConfiguredTargetKey()); - actionGraphDump.dumpAspect(aspectValue, configuredTargetValue); + SkyValue skyValue = entry.getValue(); + // The skyValue may be null in case analysis of the previous build failed. + if (skyValue != null) { + if (functionName.equals(SkyFunctions.CONFIGURED_TARGET)) { + actionGraphDump.dumpConfiguredTarget((ConfiguredTargetValue) skyValue); + } else if (functionName.equals(SkyFunctions.ASPECT)) { + AspectValue aspectValue = (AspectValue) skyValue; + AspectKey aspectKey = aspectValue.getKey(); + ConfiguredTargetValue configuredTargetValue = + (ConfiguredTargetValue) + memoizingEvaluator.getExistingValue(aspectKey.getBaseConfiguredTargetKey()); + actionGraphDump.dumpAspect(aspectValue, configuredTargetValue); + } } } catch (InterruptedException e) { Thread.currentThread().interrupt(); |