From b89546e17c033b63d422454b2e8525211195f692 Mon Sep 17 00:00:00 2001 From: nywitness Date: Fri, 24 Jul 2020 15:26:41 +0800 Subject: [PATCH 1/3] [MSHARED-938] add charset config --- .../org/apache/maven/shared/utils/cli/CommandLineUtils.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/apache/maven/shared/utils/cli/CommandLineUtils.java b/src/main/java/org/apache/maven/shared/utils/cli/CommandLineUtils.java index 2ffcfb24..5331567e 100644 --- a/src/main/java/org/apache/maven/shared/utils/cli/CommandLineUtils.java +++ b/src/main/java/org/apache/maven/shared/utils/cli/CommandLineUtils.java @@ -280,11 +280,11 @@ public Integer call() inputFeeder.start(); } - outputPumper = new StreamPumper( p.getInputStream(), systemOut ); + outputPumper = new StreamPumper( p.getInputStream(), systemOut , streamCharset ); outputPumper.setName( "StreamPumper-systemOut" ); outputPumper.start(); - errorPumper = new StreamPumper( p.getErrorStream(), systemErr ); + errorPumper = new StreamPumper( p.getErrorStream(), systemErr , streamCharset ); errorPumper.setName( "StreamPumper-systemErr" ); errorPumper.start(); From faf0103ee24e3e1a6f762cdc718a610a7fbc6516 Mon Sep 17 00:00:00 2001 From: nywitness Date: Tue, 28 Jul 2020 21:46:25 +0800 Subject: [PATCH 2/3] [MSHARED-938] Add test unit to prove bug is fixed. --- .../utils/cli/CommandLineUtilsTest.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/test/java/org/apache/maven/shared/utils/cli/CommandLineUtilsTest.java b/src/test/java/org/apache/maven/shared/utils/cli/CommandLineUtilsTest.java index 079d0d16..01b50cf7 100644 --- a/src/test/java/org/apache/maven/shared/utils/cli/CommandLineUtilsTest.java +++ b/src/test/java/org/apache/maven/shared/utils/cli/CommandLineUtilsTest.java @@ -24,6 +24,7 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.fail; +import java.nio.charset.Charset; import java.util.Arrays; import java.util.HashMap; import java.util.Locale; @@ -168,4 +169,25 @@ private void assertCmdLineArgs( final String[] expected, final String cmdLine ) assertEquals( expected.length, actual.length ); assertEquals( Arrays.asList( expected ), Arrays.asList( actual ) ); } + + @Test + public void testChineseEncodingIssue() + throws Exception + { + Commandline commandline = new Commandline( "ping www.baidu.com" ); + StreamConsumer err = new StreamConsumer() { + @Override + public void consumeLine( String line ) { + + } + }; + StreamConsumer out = new StreamConsumer() { + @Override + public void consumeLine( String line ) { + System.out.println( line ); + } + }; + CommandLineCallable commandLineCallable = CommandLineUtils.executeCommandLineAsCallable( commandline, null, out, err, 10, null, Charset.forName("GBK") ); + commandLineCallable.call(); + } } From d2752c47f7cb474591c8a606acbb26f0dd426b6b Mon Sep 17 00:00:00 2001 From: nywitness Date: Tue, 28 Jul 2020 21:54:49 +0800 Subject: [PATCH 3/3] [MSHARED-938] Exclude ICMP in the test. --- .../org/apache/maven/shared/utils/cli/CommandLineUtilsTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/org/apache/maven/shared/utils/cli/CommandLineUtilsTest.java b/src/test/java/org/apache/maven/shared/utils/cli/CommandLineUtilsTest.java index 01b50cf7..fb58a97f 100644 --- a/src/test/java/org/apache/maven/shared/utils/cli/CommandLineUtilsTest.java +++ b/src/test/java/org/apache/maven/shared/utils/cli/CommandLineUtilsTest.java @@ -174,7 +174,7 @@ private void assertCmdLineArgs( final String[] expected, final String cmdLine ) public void testChineseEncodingIssue() throws Exception { - Commandline commandline = new Commandline( "ping www.baidu.com" ); + Commandline commandline = new Commandline( "echo 金色传说" ); StreamConsumer err = new StreamConsumer() { @Override public void consumeLine( String line ) {