You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by ne...@apache.org on 2021/11/01 14:39:43 UTC
[netbeans] branch delivery updated: [NETBEANS-6115] UTF-8 input is
broken in Maven project.
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 <mb...@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-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists