diff options
author | 2018-07-11 12:21:23 -0700 | |
---|---|---|
committer | 2018-07-11 12:23:00 -0700 | |
commit | fb8332ff6ee990fccc98548e12b200359b3114f8 (patch) | |
tree | 03a4cb6f79808f6803e3dd51fb23b03d76d17fb9 /src/main/java/com/google/devtools/build/lib/buildeventstream | |
parent | e169b94ce9b0e964b8edd231ef7eb3bed1cd2ccf (diff) |
Omit parts of BEP events (like stdout, stderr) when the associated artifact uploader cannot upload a particular file.
RELNOTES: None
PiperOrigin-RevId: 204167372
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/buildeventstream')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/buildeventstream/BuildToolLogs.java | 13 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/buildeventstream/PathConverter.java | 26 |
2 files changed, 23 insertions, 16 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/buildeventstream/BuildToolLogs.java b/src/main/java/com/google/devtools/build/lib/buildeventstream/BuildToolLogs.java index 8ac55d6db2..eb5358b7f5 100644 --- a/src/main/java/com/google/devtools/build/lib/buildeventstream/BuildToolLogs.java +++ b/src/main/java/com/google/devtools/build/lib/buildeventstream/BuildToolLogs.java @@ -62,11 +62,14 @@ public class BuildToolLogs implements BuildEventWithOrderConstraint { .build()); } for (Pair<String, Path> logFile : logFiles) { - toolLogs.addLog( - BuildEventStreamProtos.File.newBuilder() - .setName(logFile.getFirst()) - .setUri(converters.pathConverter().apply(logFile.getSecond())) - .build()); + String uri = converters.pathConverter().apply(logFile.getSecond()); + if (uri != null) { + toolLogs.addLog( + BuildEventStreamProtos.File.newBuilder() + .setName(logFile.getFirst()) + .setUri(uri) + .build()); + } } return GenericBuildEvent.protoChaining(this).setBuildToolLogs(toolLogs.build()).build(); } diff --git a/src/main/java/com/google/devtools/build/lib/buildeventstream/PathConverter.java b/src/main/java/com/google/devtools/build/lib/buildeventstream/PathConverter.java index a1aaf31d40..b09073ff97 100644 --- a/src/main/java/com/google/devtools/build/lib/buildeventstream/PathConverter.java +++ b/src/main/java/com/google/devtools/build/lib/buildeventstream/PathConverter.java @@ -18,22 +18,21 @@ import com.google.common.base.Preconditions; import com.google.devtools.build.lib.vfs.Path; import java.net.URI; import java.net.URISyntaxException; +import javax.annotation.Nullable; /** * Interface for conversion of paths to URIs. */ public interface PathConverter { /** An implementation that throws on every call to {@link #apply(Path)}. */ - public static final PathConverter NO_CONVERSION = new PathConverter() { - @Override - public String apply(Path path) { - throw new IllegalStateException( - String.format( - "Can't convert '%s', as it has not been" - + "declared as a referenced artifact of a build event", - path.getPathString())); - } - }; + PathConverter NO_CONVERSION = + path -> { + throw new IllegalStateException( + String.format( + "Can't convert '%s', as it has not been" + + "declared as a referenced artifact of a build event", + path.getPathString())); + }; /** A {@link PathConverter} that returns a path formatted as a URI with a {@code file} scheme. */ // TODO(ulfjack): Make this a static final field. @@ -81,7 +80,12 @@ public interface PathConverter { /** * Return the URI corresponding to the given path. * - * <p>This method must not return {@code null}. + * <p>This method may return null, in which case the associated {@link BuildEventArtifactUploader} + * was permanently unable to upload the file. The file should be omitted from the BEP stream. + * + * <p>This method may throw {@link IllegalStateException} if it is passed a path that + * wasn't declared in {@link BuildEvent#referencedLocalFiles()}. */ + @Nullable String apply(Path path); } |