aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build
diff options
context:
space:
mode:
authorGravatar John Cater <jcater@google.com>2017-07-05 14:28:12 -0400
committerGravatar John Cater <jcater@google.com>2017-07-06 07:13:29 -0400
commita15d648410000cedbde9578c9ee22a023f1b96df (patch)
tree539f31141da2fab31c0c94b8368531d700f5f0ad /src/main/java/com/google/devtools/build
parent2db52703129b010bb864d7ee4180c7c598239f69 (diff)
Fix LocalRepositoryLookupFunction to normalize paths so they are compared properly.
Part of #2811. Change-Id: I15da53d1f6ec7f4a41f5d14fdd9dafd5ad82f9fc PiperOrigin-RevId: 160982624
Diffstat (limited to 'src/main/java/com/google/devtools/build')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupFunction.java7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupFunction.java
index 732620342d..3c0382e600 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupFunction.java
@@ -29,6 +29,7 @@ import com.google.devtools.build.lib.packages.Rule;
import com.google.devtools.build.lib.rules.repository.LocalRepositoryRule;
import com.google.devtools.build.lib.skyframe.PackageFunction.PackageFunctionException;
import com.google.devtools.build.lib.syntax.Type;
+import com.google.devtools.build.lib.vfs.Path;
import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.devtools.build.lib.vfs.RootedPath;
import com.google.devtools.build.skyframe.SkyFunction;
@@ -208,8 +209,10 @@ public class LocalRepositoryLookupFunction implements SkyFunction {
@Override
public boolean apply(@Nullable Rule rule) {
AggregatingAttributeMapper mapper = AggregatingAttributeMapper.of(rule);
- PathFragment pathAttr = PathFragment.create(mapper.get("path", Type.STRING));
- return directory.getRelativePath().equals(pathAttr);
+ // Construct the path. If not absolute, it will be relative to the workspace.
+ Path localPath =
+ workspacePath.getRoot().getRelative(mapper.get("path", Type.STRING));
+ return directory.asPath().equals(localPath);
}
},
null);