Make sure runfiles fingerprinting accounts for empty files Previously, Runfiles#fingerprint (and actions that depend on it for their key) would collide when runfiles differed only by empty files. This is a correctness bug exercised by changes like https://github.com/bazelbuild/bazel/commit/3fc3ddbc0d2a51853c0966bfd41834765ea619a5. RELNOTES: None PiperOrigin-RevId: 214432124
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java b/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java index 2793953..e03edd5 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java
@@ -1188,5 +1188,9 @@ fp.addPath(artifact.getRootRelativePath()); fp.addPath(artifact.getExecPath()); } + + for (String name : getEmptyFilenames()) { + fp.addString(name); + } } }