aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar ulfjack <ulfjack@google.com>2017-07-27 18:39:24 +0200
committerGravatar Jakob Buchgraber <buchgr@google.com>2017-07-28 10:44:48 +0200
commit957203201c820a92e7a844c0b5a21d75ebc6b21a (patch)
treee2f8b76833f47391ea70213269fa773f0e4a2cae
parent2b5e94ac6b49ef82afb3b4c405edd04598dca5f5 (diff)
Remove MetadataHandler.isRegularFile
Instead use MetadataHandler.getMetadata().isFile(), which is basically what isRegularFile did before. PiperOrigin-RevId: 163351014
-rw-r--r--src/main/java/com/google/devtools/build/lib/actions/AbstractAction.java16
-rw-r--r--src/main/java/com/google/devtools/build/lib/actions/cache/MetadataHandler.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/ActionMetadataHandler.java11
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/actions/PopulateTreeArtifactActionTest.java5
4 files changed, 10 insertions, 25 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/actions/AbstractAction.java b/src/main/java/com/google/devtools/build/lib/actions/AbstractAction.java
index 9399384c30..f00f1e3c02 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/AbstractAction.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/AbstractAction.java
@@ -415,16 +415,20 @@ public abstract class AbstractAction implements Action, SkylarkValue {
* If the action might read directories as inputs in a way that is unsound wrt dependency
* checking, this method must be called.
*/
- protected void checkInputsForDirectories(EventHandler eventHandler,
- MetadataHandler metadataHandler) {
+ protected void checkInputsForDirectories(
+ EventHandler eventHandler, MetadataHandler metadataHandler) throws ExecException {
// Report "directory dependency checking" warning only for non-generated directories (generated
// ones will be reported earlier).
for (Artifact input : getMandatoryInputs()) {
// Assume that if the file did not exist, we would not have gotten here.
- if (input.isSourceArtifact() && !metadataHandler.isRegularFile(input)) {
- eventHandler.handle(Event.warn(getOwner().getLocation(), "input '"
- + input.prettyPrint() + "' to " + getOwner().getLabel()
- + " is a directory; dependency checking of directories is unsound"));
+ try {
+ if (input.isSourceArtifact() && !metadataHandler.getMetadata(input).isFile()) {
+ eventHandler.handle(Event.warn(getOwner().getLocation(), "input '"
+ + input.prettyPrint() + "' to " + getOwner().getLabel()
+ + " is a directory; dependency checking of directories is unsound"));
+ }
+ } catch (IOException e) {
+ throw new UserExecException(e);
}
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/actions/cache/MetadataHandler.java b/src/main/java/com/google/devtools/build/lib/actions/cache/MetadataHandler.java
index 57df4e2961..fc6c229d5a 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/cache/MetadataHandler.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/cache/MetadataHandler.java
@@ -66,9 +66,6 @@ public interface MetadataHandler {
*/
void markOmitted(ActionInput output);
- /** Returns true iff artifact is a regular file. */
- boolean isRegularFile(Artifact artifact);
-
/**
* Returns true iff artifact was intentionally omitted (not saved).
*/
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ActionMetadataHandler.java b/src/main/java/com/google/devtools/build/lib/skyframe/ActionMetadataHandler.java
index 3027a3841b..0221e288eb 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ActionMetadataHandler.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ActionMetadataHandler.java
@@ -496,17 +496,6 @@ public class ActionMetadataHandler implements MetadataHandler {
additionalOutputData.clear();
}
- @Override
- public boolean isRegularFile(Artifact artifact) {
- // Currently this method is used only for genrule input directory checks. If we need to call
- // this on output artifacts too, this could be more efficient.
- FileArtifactValue value = getInputFileArtifactValue(artifact);
- if (value != null && value.isFile()) {
- return true;
- }
- return artifact.getPath().isFile();
- }
-
/** @return data for output files that was computed during execution. */
Map<Artifact, FileValue> getOutputArtifactData() {
return outputArtifactData;
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/actions/PopulateTreeArtifactActionTest.java b/src/test/java/com/google/devtools/build/lib/analysis/actions/PopulateTreeArtifactActionTest.java
index ffc6596441..f12f380e5c 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/actions/PopulateTreeArtifactActionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/actions/PopulateTreeArtifactActionTest.java
@@ -94,11 +94,6 @@ public class PopulateTreeArtifactActionTest extends BuildViewTestCase {
}
@Override
- public boolean isRegularFile(Artifact artifact) {
- throw new UnsupportedOperationException(artifact.prettyPrint());
- }
-
- @Override
public boolean artifactOmitted(Artifact artifact) {
throw new UnsupportedOperationException(artifact.prettyPrint());
}