harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexey Varlamov" <alexey.v.varla...@gmail.com>
Subject Re: [vm]different system property: file.encoding
Date Fri, 20 Apr 2007 12:16:48 GMT
2007/4/20, Tony Wu <wuyuehao@gmail.com>:
> Hi all,
>
> There is a difference in default system property - "file.encoding". It
> comes from vm[1]. I considerd it was a non-bug difference because
> there isn't any description in spec. What's your opinion?
>
> [1]
> e.g. for locale zh_CN, the output
> IBM VM: GB18030
> DRLVM: 8859-1
> RI        : GBK
>
> 3307 and 3702 are related issues.

There are several open entries in SUN's bug parade for documenting
"extra" properties, typical resolution says [1]:
"Users are discouraged from any reliance on implementation details.
The key "file.encoding" in particular is an implementation artifact
that may not be defined or used by other vendors."

But since we rely on this property in *our implementation*, we need to
perform flawlessly - putting aside the difference with RI.
DRLVM simply hardcodes this property value, no any runtime detection
is performed. I think it would be nice if classlib could set up
appropriate value at startup (new JIRA needed?).

[1] http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6334530

>
> ---------- Forwarded message ----------
> From: Vasily Zakharov (JIRA) <jira@apache.org>
> Date: Apr 20, 2007 2:46 PM
> Subject: [jira] Commented: (HARMONY-3702) [classlib][luni] Reader and
> Writer convert characters incorrectly
> To: commits@harmony.apache.org
>
>
>
>   [ https://issues.apache.org/jira/browse/HARMONY-3702?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12490241
> ]
>
> Vasily Zakharov commented on HARMONY-3702:
> ------------------------------------------
>
> I'm not sure if this is a non-bug difference. Probably we should have
> the same default encoding as RI, for compatibility.
>
> Probably this should be discussed in the mailing list.
>
>
> > [classlib][luni] Reader and Writer convert characters incorrectly
> > -----------------------------------------------------------------
> >
> >                 Key: HARMONY-3702
> >                 URL: https://issues.apache.org/jira/browse/HARMONY-3702
> >             Project: Harmony
> >          Issue Type: Bug
> >          Components: Classlib
> >            Reporter: Vasily Zakharov
> >         Attachments: test.dat
> >
> >
> > java.io.Reader converts bytes to characters differently than RI does. Also, java.io.Writer
converts characters to bytes differently than RI does.
> > The attached test.dat file contains random test data and must be placed to the current
directory. ReaderTest below reads that file with FileReader and then dumps it to standard
output by converting each character to int. WriterTest reads the test.dat file with FileInputStream,
converts each byte to character by casting and then dumps the resulting characters to standard
output by OutputStreamWriter.
> > public class ReaderTest {
> >     public static void main(String args[]) throws Exception {
> >         char[] buffer = new char[0x100000];
> >         java.io.Reader reader = new java.io.FileReader("test.dat");
> >         int length = reader.read(buffer, 0, buffer.length);
> >         for (int i = 0; i < length; i++) {
> >             System.out.println((int) buffer[i]);
> >         }
> >     }
> > }
> > public class WriterTest {
> >     public static void main(String args[]) throws Exception {
> >         byte[] buffer = new byte[0x100000];
> >         java.io.InputStream iStream = new java.io.FileInputStream("test.dat");
> >         int length = iStream.read(buffer, 0, buffer.length);
> >         char[] charBuffer = new char[length];
> >         for (int i = 0; i < length; i++) {
> >             charBuffer[i] = (char) buffer[i];
> >         }
> >         java.io.Writer writer = new java.io.OutputStreamWriter(System.out);
> >         writer.write(charBuffer, 0, length);
> >         writer.close();
> >     }
> > }
> > In both cases, output files on RI and on Harmony are different:
> > $ RI/bin/java ReaderTest > reader.ri
> > $ HY/bin/java ReaderTest > reader.hy
> > $ diff --binary -q reader.ri reader.hy
> > Files reader.ri and reader.hy differ
> > $ RI/bin/java WriterTest > writer.ri
> > $ HY/bin/java WriterTest > writer.hy
> > $ diff --binary -q writer.ri writer.hy
> > Files writer.ri and writer.hy differ
> > My investigations show that the problem is in Reader/Writer, not in InputStream/OutputStream.
Also, I've tried other implementations of Reader/Writer and they share the same problem.
> > The problem was discovered on Windows XP/IA-32 but probably affects other platforms
too.
>
> --
> This message is automatically generated by JIRA.
> -
> You can reply to this email to add a comment to the issue online.
>
>
>
> --
> Tony Wu
> China Software Development Lab, IBM
>

Mime
View raw message