RFR: 8234835 Use UTF-8 charset in make support Java code

Erik Joelsson erik.joelsson at oracle.com
Thu Dec 5 17:03:01 UTC 2019


I'm fine with this.

/Erik

On 2019-12-04 15:30, Dan Smith wrote:
>> On Dec 3, 2019, at 5:24 PM, Jonathan Gibbons <jonathan.gibbons at oracle.com> wrote:
>>
>> Hi Dan,
>>
>> I think it's a combination of oral tradition and long-standing precedent.
>>
>> Earlier this year, I raised this general issue, partly because of inconsistent use of -encoding in the build system.  The response was that there was some concern that not all tools in the tool chain could handle UTF-8 files.
>>
>> $ find open/make -name \*.gmk | xargs grep -o -e '-encoding [^ ]*'
>> open/make/Docs.gmk:-encoding ISO-8859-1
>> open/make/Docs.gmk:-encoding ISO-8859-1
>> open/make/common/SetupJavaCompilers.gmk:-encoding ascii
>> open/make/common/SetupJavaCompilers.gmk:-encoding ascii
>>
>> I think we should be consistent, but (at the time) it did not seem worth pushing for UTF-8 everywhere.
> Yeah, I think I'll join you in not being ready for this crusade. Might be nice, but will require broad familiarity with everything in the JDK that touches text.
>
> Instead, I'm happy to assert that, within the small space of spec processing tools, we need to support UTF-8, and so target my changeset to just the fixuppandoc tool.
>
> Can I get a review on this specific change?:
>
> -----
>
> diff -r 8c4c358272a9 -r 4c0e6c85037c make/jdk/src/classes/build/tools/fixuppandoc/Main.java
> --- a/make/jdk/src/classes/build/tools/fixuppandoc/Main.java    Fri Nov 15 20:39:26 2019 +0800
> +++ b/make/jdk/src/classes/build/tools/fixuppandoc/Main.java    Wed Dec 04 16:24:25 2019 -0700
> @@ -46,6 +46,7 @@
>   import java.util.Set;
>   import java.util.regex.Matcher;
>   import java.util.regex.Pattern;
> +import static java.nio.charset.StandardCharsets.UTF_8;
>   
>   /**
>    * Fixup HTML generated by pandoc.
> @@ -184,7 +185,7 @@
>                   if (inFile != null) {
>                       read(inFile);
>                   } else {
> -                    read(new BufferedReader(new InputStreamReader(System.in)));
> +                    read(new BufferedReader(new InputStreamReader(System.in, UTF_8)));
>                   }
>               }
>           }
> @@ -198,9 +199,9 @@
>            */
>           private Writer openWriter(Path file) throws IOException {
>               if (file != null) {
> -                return Files.newBufferedWriter(file);
> +                return Files.newBufferedWriter(file, UTF_8);
>               } else {
> -                return new BufferedWriter(new OutputStreamWriter(System.out) {
> +                return new BufferedWriter(new OutputStreamWriter(System.out, UTF_8) {
>                       @Override
>                       public void close() throws IOException {
>                           flush();
> @@ -615,7 +616,7 @@
>            * @param file the file
>            */
>           void read(Path file) {
> -            try (Reader r = Files.newBufferedReader(file)) {
> +            try (Reader r = Files.newBufferedReader(file, UTF_8)) {
>                   this.file = file;
>                   read(r);
>               } catch (IOException e) {
>



More information about the build-dev mailing list