summaryrefslogtreecommitdiff
path: root/jps/jps-builders/src/org/jetbrains/jps/javac/OptimizedFileManager17.java
diff options
context:
space:
mode:
Diffstat (limited to 'jps/jps-builders/src/org/jetbrains/jps/javac/OptimizedFileManager17.java')
-rw-r--r--jps/jps-builders/src/org/jetbrains/jps/javac/OptimizedFileManager17.java13
1 files changed, 11 insertions, 2 deletions
diff --git a/jps/jps-builders/src/org/jetbrains/jps/javac/OptimizedFileManager17.java b/jps/jps-builders/src/org/jetbrains/jps/javac/OptimizedFileManager17.java
index 16b6b683a48b..a2879478c707 100644
--- a/jps/jps-builders/src/org/jetbrains/jps/javac/OptimizedFileManager17.java
+++ b/jps/jps-builders/src/org/jetbrains/jps/javac/OptimizedFileManager17.java
@@ -33,6 +33,7 @@ import java.net.URISyntaxException;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.charset.CharsetDecoder;
+import java.nio.file.LinkOption;
import java.util.*;
/**
@@ -362,12 +363,20 @@ class OptimizedFileManager17 extends com.sun.tools.javac.file.JavacFileManager {
if (kind == Kind.OTHER && getKind() != kind) {
return false;
}
- String n = cn + kind.extension;
+ final String n = cn + kind.extension;
if (name.equals(n)) {
return true;
}
if (name.equalsIgnoreCase(n)) {
- return file.getName().equals(n);
+ // if we are on a case-insensitive file system,
+ // try to compare against the real (exactly as on the disk) file name
+ //
+ try {
+ //noinspection Since15
+ return n.equals(file.toPath().toRealPath(LinkOption.NOFOLLOW_LINKS).getFileName().toString());
+ }
+ catch (IOException ignored) {
+ }
}
return false;
}