Fix Desugar duplicating path for dumped classes.
When dumpDirectory (jdk.internal.lambda.dumpProxyClasses) is a relative path, Desugar was duplicating that path because it was resolving lambdaClass.getKey() (which contained already the the dumpDirectory path).
Fixed by ensuring dumpDirectory is always an absolute path.
RELNOTES: n/a
PiperOrigin-RevId: 155913466
GitOrigin-RevId: 2d9cdee86aefb7dc3e777411eb075d07eb405a25
Change-Id: Ibae1e7bf2e7c327c39e8359c602e43146e42cae2
diff --git a/java/com/google/devtools/build/android/desugar/Desugar.java b/java/com/google/devtools/build/android/desugar/Desugar.java
index b4b4c8e..a09dc0d 100644
--- a/java/com/google/devtools/build/android/desugar/Desugar.java
+++ b/java/com/google/devtools/build/android/desugar/Desugar.java
@@ -550,7 +550,7 @@
private static Path createAndRegisterLambdaDumpDirectory() throws IOException {
String propertyValue = System.getProperty(LambdaClassMaker.LAMBDA_METAFACTORY_DUMPER_PROPERTY);
if (propertyValue != null) {
- return Paths.get(propertyValue);
+ return Paths.get(propertyValue).toAbsolutePath();
}
Path dumpDirectory = Files.createTempDirectory("lambdas");