diff --git a/jps/jps-builders/src/org/jetbrains/jps/javac/OptimizedFileManager.java b/jps/jps-builders/src/org/jetbrains/jps/javac/OptimizedFileManager.java index 89c7be1cda83..0004f5736c3a 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/javac/OptimizedFileManager.java +++ b/jps/jps-builders/src/org/jetbrains/jps/javac/OptimizedFileManager.java @@ -19,6 +19,7 @@ import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; import com.sun.tools.javac.util.*; import com.sun.tools.javac.util.List; +import org.jetbrains.jps.incremental.Utils; import javax.lang.model.SourceVersion; import javax.tools.*; @@ -26,7 +27,6 @@ import java.io.*; import java.lang.ref.SoftReference; import java.lang.reflect.Field; import java.net.URI; -import java.net.URISyntaxException; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.charset.*; @@ -418,10 +418,10 @@ class OptimizedFileManager extends DefaultFileManager { public URI toUri() { try { - return new URI(f.getPath()); + return Utils.toURI(f.getPath()); } - catch (URISyntaxException ex) { - return f.toURI(); + catch (Throwable ex) { + return f.toURI().normalize(); } } } 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 80f06fd182c0..2d96145a20c9 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/javac/OptimizedFileManager17.java +++ b/jps/jps-builders/src/org/jetbrains/jps/javac/OptimizedFileManager17.java @@ -21,6 +21,7 @@ import com.sun.tools.javac.file.RelativePath; import com.sun.tools.javac.util.Context; import com.sun.tools.javac.util.List; import com.sun.tools.javac.util.ListBuffer; +import org.jetbrains.jps.incremental.Utils; import javax.lang.model.SourceVersion; import javax.tools.*; @@ -229,7 +230,12 @@ class OptimizedFileManager17 extends com.sun.tools.javac.file.JavacFileManager { @Override public URI toUri() { - return file.toURI().normalize(); + try { + return Utils.toURI(file.getPath()); + } + catch (Throwable e) { + return file.toURI().normalize(); // fallback + } } @Override diff --git a/jps/lib/optimizedFileManager.jar b/jps/lib/optimizedFileManager.jar index d744fd8cff84..cc5355bc32a6 100644 Binary files a/jps/lib/optimizedFileManager.jar and b/jps/lib/optimizedFileManager.jar differ