diff options
-rw-r--r-- | src/core/lombok/javac/apt/LombokFileObjects.java | 49 |
1 files changed, 17 insertions, 32 deletions
diff --git a/src/core/lombok/javac/apt/LombokFileObjects.java b/src/core/lombok/javac/apt/LombokFileObjects.java index 917bfe9e..71d1a95c 100644 --- a/src/core/lombok/javac/apt/LombokFileObjects.java +++ b/src/core/lombok/javac/apt/LombokFileObjects.java @@ -26,7 +26,6 @@ import java.io.IOException; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.net.URI; -import java.nio.charset.Charset; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Iterator; @@ -37,7 +36,6 @@ import javax.tools.FileObject; import javax.tools.JavaFileManager; import javax.tools.JavaFileObject; import javax.tools.JavaFileObject.Kind; -import javax.tools.StandardLocation; import lombok.core.DiagnosticsReceiver; @@ -127,8 +125,7 @@ final class LombokFileObjects { if (superType.isInstance(wrappedManager)) { return new Java9Compiler(wrappedManager); } else { - String encoding = getEncodingOf(wrappedManager); - return new Java9Compiler(new BaseFileManagerWrapper(wrappedManager, encoding != null ? Charset.forName(encoding) : null)); + return new Java9Compiler(new BaseFileManagerWrapper(wrappedManager)); } } catch (Exception e) {} @@ -151,24 +148,12 @@ final class LombokFileObjects { } throw new IllegalArgumentException(sb.toString()); } - - private static String getEncodingOf(JavaFileManager manager) { - try { - // FileObject may be instance of org.jetbrains.jps.javac.OutputFileObject - FileObject fo = manager.getFileForOutput(StandardLocation.CLASS_OUTPUT, "", "dummy", null); - Field encodingField = fo.getClass().getDeclaredField("myEncodingName"); - encodingField.setAccessible(true); - return (String)encodingField.get(fo); - } catch (Exception e) { - return null; - } - } - + static class BaseFileManagerWrapper extends BaseFileManager { JavaFileManager manager; - - public BaseFileManagerWrapper(JavaFileManager manager, Charset charset) { - super(charset); + + public BaseFileManagerWrapper(JavaFileManager manager) { + super(null); this.manager = manager; } @@ -176,62 +161,62 @@ final class LombokFileObjects { public int isSupportedOption(String option) { return manager.isSupportedOption(option); } - + @Override public ClassLoader getClassLoader(Location location) { return manager.getClassLoader(location); } - + @Override public Iterable<JavaFileObject> list(Location location, String packageName, Set<Kind> kinds, boolean recurse) throws IOException { return manager.list(location, packageName, kinds, recurse); } - + @Override public String inferBinaryName(Location location, JavaFileObject file) { return manager.inferBinaryName(location, file); } - + @Override public boolean isSameFile(FileObject a, FileObject b) { return manager.isSameFile(a, b); } - + @Override public boolean handleOption(String current, Iterator<String> remaining) { return manager.handleOption(current, remaining); } - + @Override public boolean hasLocation(Location location) { return manager.hasLocation(location); } - + @Override public JavaFileObject getJavaFileForInput(Location location, String className, Kind kind) throws IOException { return manager.getJavaFileForInput(location, className, kind); } - + @Override public JavaFileObject getJavaFileForOutput(Location location, String className, Kind kind, FileObject sibling) throws IOException { return manager.getJavaFileForOutput(location, className, kind, sibling); } - + @Override public FileObject getFileForInput(Location location, String packageName, String relativeName) throws IOException { return manager.getFileForInput(location, packageName, relativeName); } - + @Override public FileObject getFileForOutput(Location location, String packageName, String relativeName, FileObject sibling) throws IOException { return manager.getFileForOutput(location, packageName, relativeName, sibling); } - + @Override public void flush() throws IOException { manager.flush(); } - + @Override public void close() throws IOException { manager.close(); |