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