This is an automated email from the ASF dual-hosted git repository. neilcsmith pushed a commit to branch delivery in repository https://gitbox.apache.org/repos/asf/netbeans.git
The following commit(s) were added to refs/heads/delivery by this push: new 741c624 [NETBEANS-6115] UTF-8 input is broken in Maven project. new 4ff3390 Merge pull request #3289 from mbien/maven_utf 741c624 is described below commit 741c6242343d11839f815ef7fd547baa8988d213 Author: Michael Bien <mbie...@gmail.com> AuthorDate: Sun Oct 31 04:14:48 2021 +0100 [NETBEANS-6115] UTF-8 input is broken in Maven project. Chars were written as bytes to a stream, ignoring the encoding. By wrapping the stream in a writer, chars can now be encoded properly. Chose to not specify the encoding so that the default can be used or overwritten by -Dfile.encoding=UTF-8. JDK 18+ uses UTF-8 as default, it will be probably best practice to set the encoding to UTF-8 for most JDK 17 projects too, while using the new 'native.encoding' property for edge cases. --- .../maven/execute/CommandLineOutputHandler.java | 24 ++++++++-------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/java/maven/src/org/netbeans/modules/maven/execute/CommandLineOutputHandler.java b/java/maven/src/org/netbeans/modules/maven/execute/CommandLineOutputHandler.java index 303a218..d9d0cea 100644 --- a/java/maven/src/org/netbeans/modules/maven/execute/CommandLineOutputHandler.java +++ b/java/maven/src/org/netbeans/modules/maven/execute/CommandLineOutputHandler.java @@ -24,12 +24,13 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; +import java.io.OutputStreamWriter; import java.io.Reader; +import java.io.Writer; import java.net.URL; import java.util.ArrayList; import java.util.Arrays; import java.util.EnumMap; -import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.logging.Logger; @@ -50,14 +51,15 @@ import org.netbeans.modules.maven.api.NbMavenProject; import org.netbeans.modules.maven.api.output.OutputUtils; import org.netbeans.modules.maven.api.output.OutputVisitor; import org.netbeans.modules.maven.execute.AbstractMavenExecutor.ResumeFromFinder; + import static org.netbeans.modules.maven.execute.AbstractOutputHandler.PRJ_EXECUTE; import static org.netbeans.modules.maven.execute.AbstractOutputHandler.SESSION_EXECUTE; + import org.netbeans.modules.maven.execute.cmd.ExecMojo; import org.netbeans.modules.maven.execute.cmd.ExecProject; import org.netbeans.modules.maven.execute.cmd.ExecSession; import org.netbeans.modules.maven.options.MavenSettings; import org.netbeans.spi.project.ProjectContainerProvider; -import org.netbeans.spi.project.SubprojectProvider; import org.openide.util.Exceptions; import org.openide.util.RequestProcessor; import org.openide.util.RequestProcessor.Task; @@ -674,8 +676,8 @@ public class CommandLineOutputHandler extends AbstractOutputHandler { static class Input implements Runnable { - private InputOutput inputOutput; - private OutputStream str; + private final InputOutput inputOutput; + private final OutputStream str; private boolean stopIn = false; public Input(OutputStream out, InputOutput inputOutput) { @@ -698,29 +700,21 @@ public class CommandLineOutputHandler extends AbstractOutputHandler { public @Override void run() { Reader in = inputOutput.getIn(); - try { + try (Writer out = new OutputStreamWriter(str)) { while (true) { int read = in.read(); if (read != -1) { - str.write(read); - str.flush(); + out.write(read); + out.flush(); } else { - str.close(); return; } if (stopIn) { return; } } - } catch (IOException ex) { ex.printStackTrace(); - } finally { - try { - str.close(); - } catch (IOException ex) { - ex.printStackTrace(); - } } } } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org For additional commands, e-mail: commits-h...@netbeans.apache.org For further information about the NetBeans mailing lists, visit: https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists