Bug 563688: [REnv] Add comparison with real path in lookup of
RLibLocation by directory path
Change-Id: I95448aa7543f1b9bbc68966b7a2fb1e280e8a1dd
diff --git a/core/org.eclipse.statet.rj.services.core/srcEnv/org/eclipse/statet/rj/renv/core/RLibPaths.java b/core/org.eclipse.statet.rj.services.core/srcEnv/org/eclipse/statet/rj/renv/core/RLibPaths.java
index 944535b..ae3f08a 100644
--- a/core/org.eclipse.statet.rj.services.core/srcEnv/org/eclipse/statet/rj/renv/core/RLibPaths.java
+++ b/core/org.eclipse.statet.rj.services.core/srcEnv/org/eclipse/statet/rj/renv/core/RLibPaths.java
@@ -14,6 +14,7 @@
package org.eclipse.statet.rj.renv.core;
+import java.io.IOException;
import java.nio.file.Path;
import org.eclipse.statet.jcommons.collections.ImList;
@@ -49,9 +50,15 @@
default @Nullable RLibLocation getRLibLocationByDirectoryPath(final Path directory) {
for (final RLibLocation libLocation : getRLibLocations()) {
- if (directory.equals(libLocation.getDirectoryPath())) {
- return libLocation;
+ try {
+ final Path libLocationPath= libLocation.getDirectoryPath();
+ if (libLocationPath != null
+ && (directory.equals(libLocationPath)
+ || directory.equals(libLocationPath.toRealPath() ))) {
+ return libLocation;
+ }
}
+ catch (final IOException | SecurityException e) {}
}
return null;
}