diff options
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/buildtool/SkyframeBuilder.java | 11 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java | 13 |
2 files changed, 13 insertions, 11 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/SkyframeBuilder.java b/src/main/java/com/google/devtools/build/lib/buildtool/SkyframeBuilder.java index 248bf16161..6189cfc97c 100644 --- a/src/main/java/com/google/devtools/build/lib/buildtool/SkyframeBuilder.java +++ b/src/main/java/com/google/devtools/build/lib/buildtool/SkyframeBuilder.java @@ -150,7 +150,7 @@ public class SkyframeBuilder implements Builder { actionCacheChecker, executionProgressReceiver); // progressReceiver is finished, so unsynchronized access to builtTargets is now safe. - success = processResult(result, keepGoing, skyframeExecutor); + success = processResult(eventHandler, result, keepGoing, skyframeExecutor); Preconditions.checkState( !success @@ -183,7 +183,7 @@ public class SkyframeBuilder implements Builder { numJobs, actionCacheChecker, null); - boolean exclusiveSuccess = processResult(result, keepGoing, skyframeExecutor); + boolean exclusiveSuccess = processResult(eventHandler, result, keepGoing, skyframeExecutor); Preconditions.checkState(!exclusiveSuccess || !result.keyNames().isEmpty(), "Build reported as successful but test %s not executed: %s", exclusiveTest, result); @@ -217,13 +217,14 @@ public class SkyframeBuilder implements Builder { * <p>Returns false if the update() failed, but we should continue. Returns true on success. * Throws on fail-fast failures. */ - private static boolean processResult(EvaluationResult<?> result, boolean keepGoing, - SkyframeExecutor skyframeExecutor) throws BuildFailedException, TestExecException { + private static boolean processResult(EventHandler eventHandler, EvaluationResult<?> result, + boolean keepGoing, SkyframeExecutor skyframeExecutor) + throws BuildFailedException, TestExecException { if (result.hasError()) { boolean hasCycles = false; for (Map.Entry<SkyKey, ErrorInfo> entry : result.errorMap().entrySet()) { Iterable<CycleInfo> cycles = entry.getValue().getCycleInfo(); - skyframeExecutor.reportCycles(cycles, entry.getKey()); + skyframeExecutor.reportCycles(eventHandler, cycles, entry.getKey()); hasCycles |= !Iterables.isEmpty(cycles); } if (keepGoing && !resultHasCatastrophicError(result)) { diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java index 842420456c..fda47d4f2f 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java @@ -454,8 +454,8 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { * This method exists only to allow a module to make a top-level Skyframe call during the * transition to making it fully Skyframe-compatible. Do not add additional callers! */ - public <E extends Exception> SkyValue evaluateSkyKeyForCodeMigration(final SkyKey key, - final Class<E> clazz) throws E { + public <E extends Exception> SkyValue evaluateSkyKeyForCodeMigration( + final EventHandler eventHandler, final SkyKey key, final Class<E> clazz) throws E { try { return callUninterruptibly(new Callable<SkyValue>() { @Override @@ -466,7 +466,7 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { // permitted. EvaluationResult<SkyValue> result = buildDriver.evaluate( ImmutableList.of(key), true, ResourceUsage.getAvailableProcessors(), - errorEventListener); + eventHandler); if (!result.hasError()) { return Preconditions.checkNotNull(result.get(key), "%s %s", result, key); } @@ -1517,7 +1517,7 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { ErrorInfo error = result.getError(key); if (error != null) { if (!Iterables.isEmpty(error.getCycleInfo())) { - reportCycles(result.getError().getCycleInfo(), key); + reportCycles(eventHandler, result.getError().getCycleInfo(), key); // This can only happen if a package is freshly loaded outside of the target parsing // or loading phase throw new BuildFileContainsErrorsException( @@ -1618,8 +1618,9 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { } /** Convenience method with same semantics as {@link CyclesReporter#reportCycles}. */ - public void reportCycles(Iterable<CycleInfo> cycles, SkyKey topLevelKey) { - getCyclesReporter().reportCycles(cycles, topLevelKey, errorEventListener); + public void reportCycles(EventHandler eventHandler, Iterable<CycleInfo> cycles, + SkyKey topLevelKey) { + getCyclesReporter().reportCycles(cycles, topLevelKey, eventHandler); } public void setActionExecutionProgressReportingObjects(@Nullable ProgressSupplier supplier, |