Re: RFR: 8132459: ExceptionInInitializerError from 'java -version' on Linux under zh_CN.GB18030 locale

2015-07-30 Thread Xueming Shen

On 07/30/2015 03:01 PM, David Holmes wrote:

On 31/07/2015 1:41 AM, Xueming Shen wrote:

On 07/30/2015 01:37 AM, Volker Simonis wrote:

On Thu, Jul 30, 2015 at 9:51 AM, Alan
Batemanalan.bate...@oracle.com  wrote:


On 30/07/2015 06:21, Xueming Shen wrote:

:

Each platform has a list of supported locale/encoding. All these
encodings/charsets need to be in
base module for that particular platform, to support the jvm to
start (in
a particular locale/encoding)
under module system. The charsets in our repository can be categorized
into different groups, solaris/
linux specific, windows specific and IBM specific and couple that are
shared by different platforms).
The idea here is to build all those platform-specific charsets into the
base module for that platform.

Right, and furthermore, we should be able to build a compact1 image
or just
an image with the java.base module and it should be able to start on
platforms when running with a supported locale/encoding. I think the
main
issue we've had is establishing that list, hence it had to be
extended a few
times.


The change looks fine.

But what about the 'supported locale/encoding' list. Is there a
published 'official' version of this list for Oracle/OpenJDK and how
is it maintained.


I meant to say all the supported/native locale+encoding of the
platform/OS. If we have those
charsets in our repository, they all need go into the base module.


Now I'm confused again. Do the platforms we officially support have set lists 
of such locales/encodings? If so getting our list correct seems trivial. If 
not, then how can we support an unknown target??



it's a known target. we know the list of the locale/encoding solais /linux 
supports and the list
of charsets Java supports.

-sherman



Re: RFR: 8132459: ExceptionInInitializerError from 'java -version' on Linux under zh_CN.GB18030 locale

2015-07-30 Thread Bernd
Hello,

I doubt you can compile a list of all charsets supported by the various
(national) linux distributions and versions (and installed runtime
packages). Especially not for OpenJDK which can be much less restrictive in
picking supported (non enterprise) distributions.

And I also wonder why it is needed, if a locale is not known just fall back
to a sane default. The OpenJDK should define a reasonable list (especially
for compact profiles) and not declare to support all platforms fully.

Gruss
Bernd

Xueming Shen xueming.s...@oracle.com schrieb am Fr., 31. Juli 2015 00:35:

 On 07/30/2015 03:01 PM, David Holmes wrote:
  On 31/07/2015 1:41 AM, Xueming Shen wrote:
  On 07/30/2015 01:37 AM, Volker Simonis wrote:
  On Thu, Jul 30, 2015 at 9:51 AM, Alan
  Batemanalan.bate...@oracle.com  wrote:
 
  On 30/07/2015 06:21, Xueming Shen wrote:
  :
 
  Each platform has a list of supported locale/encoding. All these
  encodings/charsets need to be in
  base module for that particular platform, to support the jvm to
  start (in
  a particular locale/encoding)
  under module system. The charsets in our repository can be
 categorized
  into different groups, solaris/
  linux specific, windows specific and IBM specific and couple that are
  shared by different platforms).
  The idea here is to build all those platform-specific charsets into
 the
  base module for that platform.
  Right, and furthermore, we should be able to build a compact1 image
  or just
  an image with the java.base module and it should be able to start on
  platforms when running with a supported locale/encoding. I think the
  main
  issue we've had is establishing that list, hence it had to be
  extended a few
  times.
 
  The change looks fine.
 
  But what about the 'supported locale/encoding' list. Is there a
  published 'official' version of this list for Oracle/OpenJDK and how
  is it maintained.
 
  I meant to say all the supported/native locale+encoding of the
  platform/OS. If we have those
  charsets in our repository, they all need go into the base module.
 
  Now I'm confused again. Do the platforms we officially support have set
 lists of such locales/encodings? If so getting our list correct seems
 trivial. If not, then how can we support an unknown target??
 

 it's a known target. we know the list of the locale/encoding solais
 /linux supports and the list
 of charsets Java supports.

 -sherman




Re: RFR: 8132459: ExceptionInInitializerError from 'java -version' on Linux under zh_CN.GB18030 locale

2015-07-30 Thread David Holmes

On 31/07/2015 1:41 AM, Xueming Shen wrote:

On 07/30/2015 01:37 AM, Volker Simonis wrote:

On Thu, Jul 30, 2015 at 9:51 AM, Alan
Batemanalan.bate...@oracle.com  wrote:


On 30/07/2015 06:21, Xueming Shen wrote:

:

Each platform has a list of supported locale/encoding. All these
encodings/charsets need to be in
base module for that particular platform, to support the jvm to
start (in
a particular locale/encoding)
under module system. The charsets in our repository can be categorized
into different groups, solaris/
linux specific, windows specific and IBM specific and couple that are
shared by different platforms).
The idea here is to build all those platform-specific charsets into the
base module for that platform.

Right, and furthermore, we should be able to build a compact1 image
or just
an image with the java.base module and it should be able to start on
platforms when running with a supported locale/encoding. I think the
main
issue we've had is establishing that list, hence it had to be
extended a few
times.


The change looks fine.

But what about the 'supported locale/encoding' list. Is there a
published 'official' version of this list for Oracle/OpenJDK and how
is it maintained.


I meant to say all the supported/native locale+encoding of the
platform/OS. If we have those
charsets in our repository, they all need go into the base module.


Now I'm confused again. Do the platforms we officially support have set 
lists of such locales/encodings? If so getting our list correct seems 
trivial. If not, then how can we support an unknown target??


Thanks,
David



We do have a jdk supported locale and encoding list, but they are for
the supported java
locale and encoding.

-Sherman



Regards,
Volker


-Alan.




Re: RFR: 8132459: ExceptionInInitializerError from 'java -version' on Linux under zh_CN.GB18030 locale

2015-07-30 Thread Xueming Shen

On 7/30/15 4:55 PM, Bernd wrote:


Hello,

I doubt you can compile a list of all charsets supported by the 
various (national) linux distributions and versions (and installed 
runtime packages). Especially not for OpenJDK which can be much less 
restrictive in picking supported (non enterprise) distributions.


And I also wonder why it is needed, if a locale is not known just fall 
back to a sane default. The OpenJDK should define a reasonable list 
(especially for compact profiles) and not declare to support all 
platforms fully.




Bernd, it's the other way around. Instead of addding all charsets 
supported by the various linux
distributions/versions into the base module, we are selecting/building 
all charsets from our
existing repository (originally in jdk's standard charsets and extended 
charsets) that might be
used for a particular platform (linux, solaris, macos, windows) into the 
base module for that

platform.

The configuration is pretty straightforward, you can easily define a 
reasonable list of charsets

and build the OpenJDK for your specified platform/profile.

As discussed in other email, we are working on the best approach for the 
use  scenario that a

charset is unsupported from our repository.

-sherman



Xueming Shen xueming.s...@oracle.com 
mailto:xueming.s...@oracle.com schrieb am Fr., 31. Juli 2015 00:35:


On 07/30/2015 03:01 PM, David Holmes wrote:
 On 31/07/2015 1:41 AM, Xueming Shen wrote:
 On 07/30/2015 01:37 AM, Volker Simonis wrote:
 On Thu, Jul 30, 2015 at 9:51 AM, Alan
 Batemanalan.bate...@oracle.com
mailto:alan.bate...@oracle.com wrote:

 On 30/07/2015 06:21, Xueming Shen wrote:
 :

 Each platform has a list of supported locale/encoding. All
these
 encodings/charsets need to be in
 base module for that particular platform, to support the jvm to
 start (in
 a particular locale/encoding)
 under module system. The charsets in our repository can be
categorized
 into different groups, solaris/
 linux specific, windows specific and IBM specific and couple
that are
 shared by different platforms).
 The idea here is to build all those platform-specific
charsets into the
 base module for that platform.
 Right, and furthermore, we should be able to build a compact1
image
 or just
 an image with the java.base module and it should be able to
start on
 platforms when running with a supported locale/encoding. I
think the
 main
 issue we've had is establishing that list, hence it had to be
 extended a few
 times.

 The change looks fine.

 But what about the 'supported locale/encoding' list. Is there a
 published 'official' version of this list for Oracle/OpenJDK
and how
 is it maintained.

 I meant to say all the supported/native locale+encoding of the
 platform/OS. If we have those
 charsets in our repository, they all need go into the base module.

 Now I'm confused again. Do the platforms we officially support
have set lists of such locales/encodings? If so getting our list
correct seems trivial. If not, then how can we support an unknown
target??


it's a known target. we know the list of the locale/encoding
solais /linux supports and the list
of charsets Java supports.

-sherman





Re: RFR: 8132459: ExceptionInInitializerError from 'java -version' on Linux under zh_CN.GB18030 locale

2015-07-30 Thread Alan Bateman



On 30/07/2015 04:54, Xueming Shen wrote:
Here is the webrev to add those missing charsets. The assumption 
back then was that the linux platform has

successfully migrated to the utf-8 default world.

http://cr.openjdk.java.net/~sherman/8132459/

This looks okay to me.

-Alan


Re: RFR: 8132459: ExceptionInInitializerError from 'java -version' on Linux under zh_CN.GB18030 locale

2015-07-30 Thread Alan Bateman



On 30/07/2015 06:21, Xueming Shen wrote:

:

Each platform has a list of supported locale/encoding. All these 
encodings/charsets need to be in
base module for that particular platform, to support the jvm to start 
(in a particular locale/encoding)
under module system. The charsets in our repository can be categorized 
into different groups, solaris/
linux specific, windows specific and IBM specific and couple that are 
shared by different platforms).
The idea here is to build all those platform-specific charsets into 
the base module for that platform.
Right, and furthermore, we should be able to build a compact1 image or 
just an image with the java.base module and it should be able to start 
on platforms when running with a supported locale/encoding. I think the 
main issue we've had is establishing that list, hence it had to be 
extended a few times.


-Alan.


Re: RFR: 8132459: ExceptionInInitializerError from 'java -version' on Linux under zh_CN.GB18030 locale

2015-07-30 Thread Volker Simonis
On Thu, Jul 30, 2015 at 9:51 AM, Alan Bateman alan.bate...@oracle.com wrote:


 On 30/07/2015 06:21, Xueming Shen wrote:

 :

 Each platform has a list of supported locale/encoding. All these
 encodings/charsets need to be in
 base module for that particular platform, to support the jvm to start (in
 a particular locale/encoding)
 under module system. The charsets in our repository can be categorized
 into different groups, solaris/
 linux specific, windows specific and IBM specific and couple that are
 shared by different platforms).
 The idea here is to build all those platform-specific charsets into the
 base module for that platform.

 Right, and furthermore, we should be able to build a compact1 image or just
 an image with the java.base module and it should be able to start on
 platforms when running with a supported locale/encoding. I think the main
 issue we've had is establishing that list, hence it had to be extended a few
 times.


The change looks fine.

But what about the 'supported locale/encoding' list. Is there a
published 'official' version of this list for Oracle/OpenJDK and how
is it maintained.

Regards,
Volker

 -Alan.


Re: RFR: 8132459: ExceptionInInitializerError from 'java -version' on Linux under zh_CN.GB18030 locale

2015-07-29 Thread Xueming Shen

On 7/29/15 2:23 AM, Volker Simonis wrote:

On Tue, Jul 28, 2015 at 11:11 PM, Xueming Shen xueming.s...@oracle.com wrote:

Volker,

If fine with you I will re-open  the gb18080 specific bug and fix it by
adding the gb18030 into
stdcs-solaris/linux and aix (does aix have a gb18030 locale?).

In general I'm fine with your proposal. But I don't understand how you
could add gb18030 to stdcs-solaris/linux. As far as I understand that
only works for charsets created from a map/template but gb18030 is
provided in source at
src/jdk.charsets/share/classes/sun/nio/cs/ext/GB18030.java and is
explicitly in the sun.nio.cs.ext package. Maybe I'm missing something?
I'm not really a charset expert :)


Nothing is impossible :-)  only need to change that GB18030.java to a 
source template
with .template, and then generate the real source code during 
build/compile time with

appropriate package name. We do this for couple charsets already.



Another point is that I thought that you (i.e. Oracle) wanted to keep
the base image small. If we now add every charset for which people
complain that it is not in the standard set to the base image, where
will be the limit? For me that's no problem (I'm doing server VM's :)
but maybe somebody else could comment?


The image size is really not a concern on unix/linux platform. But 
it would be preferred
if we can keep the size small, the reason I'm considering the iconv 
approach.


Thanks,
Sherman






And keep the
8087171 open
for a more general solution, such as using iconv for a IconvCharset

-Sherman


On 07/28/2015 09:51 AM, Volker Simonis wrote:

Hi Jonathan, Alan,

this is a known problem and we've already discussed it intensively.

Please have a look at:

8081674: EmptyStackException at startup if running with extended or
unsupported charset
https://bugs.openjdk.java.net/browse/JDK-8081674

and:

8087161: Fails to start up initialize system class loader running on
unsupported charset
https://bugs.openjdk.java.net/browse/JDK-8087161

8081674 has a long discussion and also detailed description on how
this can be reproduced.
@Jonathan: the problem with your test case is that it is not enough to
only set the appropriate locale, you also have to make sure that the
locale is installed (see bug discussion for more details). 8081674
finally only fixed a part of the problem and left the rest for
8087161.

The mailing list thread about this issue can be found here:


http://mail.openjdk.java.net/pipermail/core-libs-dev/2015-June/thread.html#33879

As your bug is an exact copy of 8087161 I've closed it as duplicate.

Regards,
Volker


On Tue, Jul 28, 2015 at 3:48 PM, Alan Batemanalan.bate...@oracle.com
wrote:

On 28/07/2015 10:50, 陆传胜(传胜) wrote:

Hello,


The issue
was found on one of my Linux boxes which uses locale zh_CN.GB18030 by
default,

a simple
patch was made to fix it, may I have it reviewed ?


webrev: http://cr.openjdk.java.net/~luchsh/webrev-8132459/

bug: https://bugs.openjdk.java.net/browse/JDK-8132459


I hope Sherman will have time to look at this and say whether GB18030 is
supposed java.base and so be listed in
jdk/make/data/charsetmapping/stdcs-linux.

My concern with this change is that it's bringing back code that was
deliberately removed as part of JDK-8038310. We want clean separation of
the
java.base and jdk.charsets modules so that charsets that are needed for
startup in supported locales to be in java.base. Anything that is not
needed
in java.base goes to jdk.charsets and is loaded via the extended charset
provider.

-Alan.






Re: RFR: 8132459: ExceptionInInitializerError from 'java -version' on Linux under zh_CN.GB18030 locale

2015-07-29 Thread Volker Simonis
On Wed, Jul 29, 2015 at 5:53 PM, Xueming Shen xueming.s...@oracle.com wrote:
 On 7/29/15 2:23 AM, Volker Simonis wrote:

 On Tue, Jul 28, 2015 at 11:11 PM, Xueming Shen xueming.s...@oracle.com
 wrote:

 Volker,

 If fine with you I will re-open  the gb18080 specific bug and fix it by
 adding the gb18030 into
 stdcs-solaris/linux and aix (does aix have a gb18030 locale?).

 In general I'm fine with your proposal. But I don't understand how you
 could add gb18030 to stdcs-solaris/linux. As far as I understand that
 only works for charsets created from a map/template but gb18030 is
 provided in source at
 src/jdk.charsets/share/classes/sun/nio/cs/ext/GB18030.java and is
 explicitly in the sun.nio.cs.ext package. Maybe I'm missing something?
 I'm not really a charset expert :)


 Nothing is impossible :-)  only need to change that GB18030.java to a
 source template
 with .template, and then generate the real source code during build/compile
 time with
 appropriate package name. We do this for couple charsets already.


That's simple enough :)
Thanks for the explanation.


 Another point is that I thought that you (i.e. Oracle) wanted to keep
 the base image small. If we now add every charset for which people
 complain that it is not in the standard set to the base image, where
 will be the limit? For me that's no problem (I'm doing server VM's :)
 but maybe somebody else could comment?


 The image size is really not a concern on unix/linux platform. But it
 would be preferred
 if we can keep the size small, the reason I'm considering the iconv
 approach.

 Thanks,
 Sherman




 And keep the
 8087171 open
 for a more general solution, such as using iconv for a IconvCharset

 -Sherman


 On 07/28/2015 09:51 AM, Volker Simonis wrote:

 Hi Jonathan, Alan,

 this is a known problem and we've already discussed it intensively.

 Please have a look at:

 8081674: EmptyStackException at startup if running with extended or
 unsupported charset
 https://bugs.openjdk.java.net/browse/JDK-8081674

 and:

 8087161: Fails to start up initialize system class loader running on
 unsupported charset
 https://bugs.openjdk.java.net/browse/JDK-8087161

 8081674 has a long discussion and also detailed description on how
 this can be reproduced.
 @Jonathan: the problem with your test case is that it is not enough to
 only set the appropriate locale, you also have to make sure that the
 locale is installed (see bug discussion for more details). 8081674
 finally only fixed a part of the problem and left the rest for
 8087161.

 The mailing list thread about this issue can be found here:



 http://mail.openjdk.java.net/pipermail/core-libs-dev/2015-June/thread.html#33879

 As your bug is an exact copy of 8087161 I've closed it as duplicate.

 Regards,
 Volker


 On Tue, Jul 28, 2015 at 3:48 PM, Alan Batemanalan.bate...@oracle.com
 wrote:

 On 28/07/2015 10:50, 陆传胜(传胜) wrote:

 Hello,


 The issue
 was found on one of my Linux boxes which uses locale zh_CN.GB18030 by
 default,

 a simple
 patch was made to fix it, may I have it reviewed ?


 webrev: http://cr.openjdk.java.net/~luchsh/webrev-8132459/

 bug: https://bugs.openjdk.java.net/browse/JDK-8132459

 I hope Sherman will have time to look at this and say whether GB18030
 is
 supposed java.base and so be listed in
 jdk/make/data/charsetmapping/stdcs-linux.

 My concern with this change is that it's bringing back code that was
 deliberately removed as part of JDK-8038310. We want clean separation
 of
 the
 java.base and jdk.charsets modules so that charsets that are needed for
 startup in supported locales to be in java.base. Anything that is not
 needed
 in java.base goes to jdk.charsets and is loaded via the extended
 charset
 provider.

 -Alan.





Re: RFR: 8132459: ExceptionInInitializerError from 'java -version' on Linux under zh_CN.GB18030 locale

2015-07-29 Thread Xueming Shen
Here is the webrev to add those missing charsets. The assumption back 
then was that the linux platform has

successfully migrated to the utf-8 default world.

http://cr.openjdk.java.net/~sherman/8132459/

thanks,
Sherman

On 7/28/15 8:22 PM, Jonathan Lu wrote:

Hi Alan, Sherman,

Thanks for taking a look!

I understand and totally agree with improving module separation.
Another quick test was just done on my Linux box for all available locales, and 
found several more which will cause
  ExceptionInInitializerError on JDK9, but worked with JDK8.

ar_AE
ar_AE.iso88596
ar_BH
ar_BH.iso88596
ar_DZ
ar_DZ.iso88596
ar_EG
ar_EG.iso88596
ar_IQ
ar_IQ.iso88596
ar_JO
ar_JO.iso88596
ar_KW
ar_KW.iso88596
ar_LB
ar_LB.iso88596
ar_LY
ar_LY.iso88596
ar_MA
ar_MA.iso88596
ar_OM
ar_OM.iso88596
ar_QA
ar_QA.iso88596
ar_SA
ar_SA.iso88596
ar_SD
ar_SD.iso88596
ar_SY
ar_SY.iso88596
ar_TN
ar_TN.iso88596
ar_YE
ar_YE.iso88596
hebrew
he_IL
he_IL.iso88598
iw_IL
iw_IL.iso88598
mt_MT
mt_MT.iso88593
thai
th_TH
th_TH.tis620
yi_US
yi_US.cp1255
zh_CN.gb18030
zh_TW.euctw

@Sherman, so other locales (except gb18030, like euctw) are all supposed to 
wait for the general solution, right ?
As I read from the scripts, it sounds to be implementation specific decision.

Thanks
Jonathan



On Jul 29, 2015, at 4:56 AM, Xueming Shen xueming.s...@oracle.com wrote:

yes, gb18030 needs to be in linux/unix std-solaris/unix as well.

-sherman

On 07/28/2015 09:51 AM, Volker Simonis wrote:

Hi Jonathan, Alan,

this is a known problem and we've already discussed it intensively.

Please have a look at:

8081674: EmptyStackException at startup if running with extended or
unsupported charset
https://bugs.openjdk.java.net/browse/JDK-8081674

and:

8087161: Fails to start up initialize system class loader running on
unsupported charset
https://bugs.openjdk.java.net/browse/JDK-8087161

8081674 has a long discussion and also detailed description on how
this can be reproduced.
@Jonathan: the problem with your test case is that it is not enough to
only set the appropriate locale, you also have to make sure that the
locale is installed (see bug discussion for more details). 8081674
finally only fixed a part of the problem and left the rest for
8087161.

The mailing list thread about this issue can be found here:

http://mail.openjdk.java.net/pipermail/core-libs-dev/2015-June/thread.html#33879

As your bug is an exact copy of 8087161 I've closed it as duplicate.

Regards,
Volker


On Tue, Jul 28, 2015 at 3:48 PM, Alan Batemanalan.bate...@oracle.com  wrote:

On 28/07/2015 10:50, 陆传胜(传胜) wrote:

Hello,


The issue
was found on one of my Linux boxes which uses locale zh_CN.GB18030 by
default,

a simple
patch was made to fix it, may I have it reviewed ?


webrev: http://cr.openjdk.java.net/~luchsh/webrev-8132459/

bug: https://bugs.openjdk.java.net/browse/JDK-8132459


I hope Sherman will have time to look at this and say whether GB18030 is
supposed java.base and so be listed in
jdk/make/data/charsetmapping/stdcs-linux.

My concern with this change is that it's bringing back code that was
deliberately removed as part of JDK-8038310. We want clean separation of the
java.base and jdk.charsets modules so that charsets that are needed for
startup in supported locales to be in java.base. Anything that is not needed
in java.base goes to jdk.charsets and is loaded via the extended charset
provider.

-Alan.




Re: RFR: 8132459: ExceptionInInitializerError from 'java -version' on Linux under zh_CN.GB18030 locale

2015-07-29 Thread David Holmes

Hi Sherman,

On 30/07/2015 1:54 PM, Xueming Shen wrote:

Here is the webrev to add those missing charsets. The assumption back
then was that the linux platform has successfully migrated to the utf-8 
default world.


This process seems somewhat ad-hoc, what are we using to determine which 
charsets are core and which are not?


Thanks,
David



http://cr.openjdk.java.net/~sherman/8132459/

thanks,
Sherman

On 7/28/15 8:22 PM, Jonathan Lu wrote:

Hi Alan, Sherman,

Thanks for taking a look!

I understand and totally agree with improving module separation.
Another quick test was just done on my Linux box for all available
locales, and found several more which will cause
  ExceptionInInitializerError on JDK9, but worked with JDK8.

ar_AE
ar_AE.iso88596
ar_BH
ar_BH.iso88596
ar_DZ
ar_DZ.iso88596
ar_EG
ar_EG.iso88596
ar_IQ
ar_IQ.iso88596
ar_JO
ar_JO.iso88596
ar_KW
ar_KW.iso88596
ar_LB
ar_LB.iso88596
ar_LY
ar_LY.iso88596
ar_MA
ar_MA.iso88596
ar_OM
ar_OM.iso88596
ar_QA
ar_QA.iso88596
ar_SA
ar_SA.iso88596
ar_SD
ar_SD.iso88596
ar_SY
ar_SY.iso88596
ar_TN
ar_TN.iso88596
ar_YE
ar_YE.iso88596
hebrew
he_IL
he_IL.iso88598
iw_IL
iw_IL.iso88598
mt_MT
mt_MT.iso88593
thai
th_TH
th_TH.tis620
yi_US
yi_US.cp1255
zh_CN.gb18030
zh_TW.euctw

@Sherman, so other locales (except gb18030, like euctw) are all
supposed to wait for the general solution, right ?
As I read from the scripts, it sounds to be implementation specific
decision.

Thanks
Jonathan



On Jul 29, 2015, at 4:56 AM, Xueming Shen xueming.s...@oracle.com
wrote:

yes, gb18030 needs to be in linux/unix std-solaris/unix as well.

-sherman

On 07/28/2015 09:51 AM, Volker Simonis wrote:

Hi Jonathan, Alan,

this is a known problem and we've already discussed it intensively.

Please have a look at:

8081674: EmptyStackException at startup if running with extended or
unsupported charset
https://bugs.openjdk.java.net/browse/JDK-8081674

and:

8087161: Fails to start up initialize system class loader running on
unsupported charset
https://bugs.openjdk.java.net/browse/JDK-8087161

8081674 has a long discussion and also detailed description on how
this can be reproduced.
@Jonathan: the problem with your test case is that it is not enough to
only set the appropriate locale, you also have to make sure that the
locale is installed (see bug discussion for more details). 8081674
finally only fixed a part of the problem and left the rest for
8087161.

The mailing list thread about this issue can be found here:

http://mail.openjdk.java.net/pipermail/core-libs-dev/2015-June/thread.html#33879


As your bug is an exact copy of 8087161 I've closed it as duplicate.

Regards,
Volker


On Tue, Jul 28, 2015 at 3:48 PM, Alan
Batemanalan.bate...@oracle.com  wrote:

On 28/07/2015 10:50, 陆传胜(传胜) wrote:

Hello,


The issue
was found on one of my Linux boxes which uses locale zh_CN.GB18030 by
default,

a simple
patch was made to fix it, may I have it reviewed ?


webrev: http://cr.openjdk.java.net/~luchsh/webrev-8132459/

bug: https://bugs.openjdk.java.net/browse/JDK-8132459


I hope Sherman will have time to look at this and say whether
GB18030 is
supposed java.base and so be listed in
jdk/make/data/charsetmapping/stdcs-linux.

My concern with this change is that it's bringing back code that was
deliberately removed as part of JDK-8038310. We want clean
separation of the
java.base and jdk.charsets modules so that charsets that are needed
for
startup in supported locales to be in java.base. Anything that is
not needed
in java.base goes to jdk.charsets and is loaded via the extended
charset
provider.

-Alan.




Re: RFR: 8132459: ExceptionInInitializerError from 'java -version' on Linux under zh_CN.GB18030 locale

2015-07-29 Thread Volker Simonis
On Tue, Jul 28, 2015 at 11:11 PM, Xueming Shen xueming.s...@oracle.com wrote:
 Volker,

 If fine with you I will re-open  the gb18080 specific bug and fix it by
 adding the gb18030 into
 stdcs-solaris/linux and aix (does aix have a gb18030 locale?).

In general I'm fine with your proposal. But I don't understand how you
could add gb18030 to stdcs-solaris/linux. As far as I understand that
only works for charsets created from a map/template but gb18030 is
provided in source at
src/jdk.charsets/share/classes/sun/nio/cs/ext/GB18030.java and is
explicitly in the sun.nio.cs.ext package. Maybe I'm missing something?
I'm not really a charset expert :)

Another point is that I thought that you (i.e. Oracle) wanted to keep
the base image small. If we now add every charset for which people
complain that it is not in the standard set to the base image, where
will be the limit? For me that's no problem (I'm doing server VM's :)
but maybe somebody else could comment?

Thanks,
Volker

 And keep the
 8087171 open
 for a more general solution, such as using iconv for a IconvCharset

 -Sherman


 On 07/28/2015 09:51 AM, Volker Simonis wrote:

 Hi Jonathan, Alan,

 this is a known problem and we've already discussed it intensively.

 Please have a look at:

 8081674: EmptyStackException at startup if running with extended or
 unsupported charset
 https://bugs.openjdk.java.net/browse/JDK-8081674

 and:

 8087161: Fails to start up initialize system class loader running on
 unsupported charset
 https://bugs.openjdk.java.net/browse/JDK-8087161

 8081674 has a long discussion and also detailed description on how
 this can be reproduced.
 @Jonathan: the problem with your test case is that it is not enough to
 only set the appropriate locale, you also have to make sure that the
 locale is installed (see bug discussion for more details). 8081674
 finally only fixed a part of the problem and left the rest for
 8087161.

 The mailing list thread about this issue can be found here:


 http://mail.openjdk.java.net/pipermail/core-libs-dev/2015-June/thread.html#33879

 As your bug is an exact copy of 8087161 I've closed it as duplicate.

 Regards,
 Volker


 On Tue, Jul 28, 2015 at 3:48 PM, Alan Batemanalan.bate...@oracle.com
 wrote:

 On 28/07/2015 10:50, 陆传胜(传胜) wrote:

 Hello,


 The issue
 was found on one of my Linux boxes which uses locale zh_CN.GB18030 by
 default,

 a simple
 patch was made to fix it, may I have it reviewed ?


 webrev: http://cr.openjdk.java.net/~luchsh/webrev-8132459/

 bug: https://bugs.openjdk.java.net/browse/JDK-8132459

 I hope Sherman will have time to look at this and say whether GB18030 is
 supposed java.base and so be listed in
 jdk/make/data/charsetmapping/stdcs-linux.

 My concern with this change is that it's bringing back code that was
 deliberately removed as part of JDK-8038310. We want clean separation of
 the
 java.base and jdk.charsets modules so that charsets that are needed for
 startup in supported locales to be in java.base. Anything that is not
 needed
 in java.base goes to jdk.charsets and is loaded via the extended charset
 provider.

 -Alan.




Re: RFR: 8132459: ExceptionInInitializerError from 'java -version' on Linux under zh_CN.GB18030 locale

2015-07-29 Thread Xueming Shen

On 7/29/15 9:53 PM, David Holmes wrote:

Hi Sherman,

On 30/07/2015 1:54 PM, Xueming Shen wrote:

Here is the webrev to add those missing charsets. The assumption back
then was that the linux platform has successfully migrated to the 
utf-8 default world.


This process seems somewhat ad-hoc, what are we using to determine 
which charsets are core and which are not?


Hi David,

Each platform has a list of supported locale/encoding. All these 
encodings/charsets need to be in
base module for that particular platform, to support the jvm to start 
(in a particular locale/encoding)
under module system. The charsets in our repository can be categorized 
into different groups, solaris/
linux specific, windows specific and IBM specific and couple that are 
shared by different platforms).
The idea here is to build all those platform-specific charsets into the 
base module for that platform.


To use the native platform de/encoding implementation/mechanism, for 
example iconv, for startup only
might be a better solution. Until we have that (and the consensus that 
we go with that approach), the

current approach appears to be the only reasonablesimple choice.

Thanks,
-Sherman



Thanks,
David



http://cr.openjdk.java.net/~sherman/8132459/

thanks,
Sherman

On 7/28/15 8:22 PM, Jonathan Lu wrote:

Hi Alan, Sherman,

Thanks for taking a look!

I understand and totally agree with improving module separation.
Another quick test was just done on my Linux box for all available
locales, and found several more which will cause
  ExceptionInInitializerError on JDK9, but worked with JDK8.

ar_AE
ar_AE.iso88596
ar_BH
ar_BH.iso88596
ar_DZ
ar_DZ.iso88596
ar_EG
ar_EG.iso88596
ar_IQ
ar_IQ.iso88596
ar_JO
ar_JO.iso88596
ar_KW
ar_KW.iso88596
ar_LB
ar_LB.iso88596
ar_LY
ar_LY.iso88596
ar_MA
ar_MA.iso88596
ar_OM
ar_OM.iso88596
ar_QA
ar_QA.iso88596
ar_SA
ar_SA.iso88596
ar_SD
ar_SD.iso88596
ar_SY
ar_SY.iso88596
ar_TN
ar_TN.iso88596
ar_YE
ar_YE.iso88596
hebrew
he_IL
he_IL.iso88598
iw_IL
iw_IL.iso88598
mt_MT
mt_MT.iso88593
thai
th_TH
th_TH.tis620
yi_US
yi_US.cp1255
zh_CN.gb18030
zh_TW.euctw

@Sherman, so other locales (except gb18030, like euctw) are all
supposed to wait for the general solution, right ?
As I read from the scripts, it sounds to be implementation specific
decision.

Thanks
Jonathan



On Jul 29, 2015, at 4:56 AM, Xueming Shen xueming.s...@oracle.com
wrote:

yes, gb18030 needs to be in linux/unix std-solaris/unix as well.

-sherman

On 07/28/2015 09:51 AM, Volker Simonis wrote:

Hi Jonathan, Alan,

this is a known problem and we've already discussed it intensively.

Please have a look at:

8081674: EmptyStackException at startup if running with extended or
unsupported charset
https://bugs.openjdk.java.net/browse/JDK-8081674

and:

8087161: Fails to start up initialize system class loader running on
unsupported charset
https://bugs.openjdk.java.net/browse/JDK-8087161

8081674 has a long discussion and also detailed description on how
this can be reproduced.
@Jonathan: the problem with your test case is that it is not 
enough to

only set the appropriate locale, you also have to make sure that the
locale is installed (see bug discussion for more details). 8081674
finally only fixed a part of the problem and left the rest for
8087161.

The mailing list thread about this issue can be found here:

http://mail.openjdk.java.net/pipermail/core-libs-dev/2015-June/thread.html#33879 




As your bug is an exact copy of 8087161 I've closed it as duplicate.

Regards,
Volker


On Tue, Jul 28, 2015 at 3:48 PM, Alan
Batemanalan.bate...@oracle.com  wrote:

On 28/07/2015 10:50, 陆传胜(传胜) wrote:

Hello,


The issue
was found on one of my Linux boxes which uses locale 
zh_CN.GB18030 by

default,

a simple
patch was made to fix it, may I have it reviewed ?


webrev: http://cr.openjdk.java.net/~luchsh/webrev-8132459/

bug: https://bugs.openjdk.java.net/browse/JDK-8132459


I hope Sherman will have time to look at this and say whether
GB18030 is
supposed java.base and so be listed in
jdk/make/data/charsetmapping/stdcs-linux.

My concern with this change is that it's bringing back code that was
deliberately removed as part of JDK-8038310. We want clean
separation of the
java.base and jdk.charsets modules so that charsets that are needed
for
startup in supported locales to be in java.base. Anything that is
not needed
in java.base goes to jdk.charsets and is loaded via the extended
charset
provider.

-Alan.






Re: RFR: 8132459: ExceptionInInitializerError from 'java -version' on Linux under zh_CN.GB18030 locale

2015-07-28 Thread Alan Bateman

On 28/07/2015 10:50, 陆传胜(传胜) wrote:

Hello,

  


The issue
was found on one of my Linux boxes which uses locale zh_CN.GB18030 by default,

a simple
patch was made to fix it, may I have it reviewed ?

  


webrev: http://cr.openjdk.java.net/~luchsh/webrev-8132459/

bug: https://bugs.openjdk.java.net/browse/JDK-8132459

I hope Sherman will have time to look at this and say whether GB18030 is 
supposed java.base and so be listed in 
jdk/make/data/charsetmapping/stdcs-linux.


My concern with this change is that it's bringing back code that was 
deliberately removed as part of JDK-8038310. We want clean separation of 
the java.base and jdk.charsets modules so that charsets that are needed 
for startup in supported locales to be in java.base. Anything that is 
not needed in java.base goes to jdk.charsets and is loaded via the 
extended charset provider.


-Alan.


Re: RFR: 8132459: ExceptionInInitializerError from 'java -version' on Linux under zh_CN.GB18030 locale

2015-07-28 Thread Volker Simonis
Hi Jonathan, Alan,

this is a known problem and we've already discussed it intensively.

Please have a look at:

8081674: EmptyStackException at startup if running with extended or
unsupported charset
https://bugs.openjdk.java.net/browse/JDK-8081674

and:

8087161: Fails to start up initialize system class loader running on
unsupported charset
https://bugs.openjdk.java.net/browse/JDK-8087161

8081674 has a long discussion and also detailed description on how
this can be reproduced.
@Jonathan: the problem with your test case is that it is not enough to
only set the appropriate locale, you also have to make sure that the
locale is installed (see bug discussion for more details). 8081674
finally only fixed a part of the problem and left the rest for
8087161.

The mailing list thread about this issue can be found here:

http://mail.openjdk.java.net/pipermail/core-libs-dev/2015-June/thread.html#33879

As your bug is an exact copy of 8087161 I've closed it as duplicate.

Regards,
Volker


On Tue, Jul 28, 2015 at 3:48 PM, Alan Bateman alan.bate...@oracle.com wrote:
 On 28/07/2015 10:50, 陆传胜(传胜) wrote:

 Hello,


 The issue
 was found on one of my Linux boxes which uses locale zh_CN.GB18030 by
 default,

 a simple
 patch was made to fix it, may I have it reviewed ?


 webrev: http://cr.openjdk.java.net/~luchsh/webrev-8132459/

 bug: https://bugs.openjdk.java.net/browse/JDK-8132459

 I hope Sherman will have time to look at this and say whether GB18030 is
 supposed java.base and so be listed in
 jdk/make/data/charsetmapping/stdcs-linux.

 My concern with this change is that it's bringing back code that was
 deliberately removed as part of JDK-8038310. We want clean separation of the
 java.base and jdk.charsets modules so that charsets that are needed for
 startup in supported locales to be in java.base. Anything that is not needed
 in java.base goes to jdk.charsets and is loaded via the extended charset
 provider.

 -Alan.


Re: RFR: 8132459: ExceptionInInitializerError from 'java -version' on Linux under zh_CN.GB18030 locale

2015-07-28 Thread Xueming Shen

Volker,

If fine with you I will re-open  the gb18080 specific bug and fix it by adding 
the gb18030 into
stdcs-solaris/linux and aix (does aix have a gb18030 locale?). And keep the  
8087171 open
for a more general solution, such as using iconv for a IconvCharset

-Sherman


On 07/28/2015 09:51 AM, Volker Simonis wrote:

Hi Jonathan, Alan,

this is a known problem and we've already discussed it intensively.

Please have a look at:

8081674: EmptyStackException at startup if running with extended or
unsupported charset
https://bugs.openjdk.java.net/browse/JDK-8081674

and:

8087161: Fails to start up initialize system class loader running on
unsupported charset
https://bugs.openjdk.java.net/browse/JDK-8087161

8081674 has a long discussion and also detailed description on how
this can be reproduced.
@Jonathan: the problem with your test case is that it is not enough to
only set the appropriate locale, you also have to make sure that the
locale is installed (see bug discussion for more details). 8081674
finally only fixed a part of the problem and left the rest for
8087161.

The mailing list thread about this issue can be found here:

http://mail.openjdk.java.net/pipermail/core-libs-dev/2015-June/thread.html#33879

As your bug is an exact copy of 8087161 I've closed it as duplicate.

Regards,
Volker


On Tue, Jul 28, 2015 at 3:48 PM, Alan Batemanalan.bate...@oracle.com  wrote:

On 28/07/2015 10:50, 陆传胜(传胜) wrote:

Hello,


The issue
was found on one of my Linux boxes which uses locale zh_CN.GB18030 by
default,

a simple
patch was made to fix it, may I have it reviewed ?


webrev: http://cr.openjdk.java.net/~luchsh/webrev-8132459/

bug: https://bugs.openjdk.java.net/browse/JDK-8132459


I hope Sherman will have time to look at this and say whether GB18030 is
supposed java.base and so be listed in
jdk/make/data/charsetmapping/stdcs-linux.

My concern with this change is that it's bringing back code that was
deliberately removed as part of JDK-8038310. We want clean separation of the
java.base and jdk.charsets modules so that charsets that are needed for
startup in supported locales to be in java.base. Anything that is not needed
in java.base goes to jdk.charsets and is loaded via the extended charset
provider.

-Alan.




Re: RFR: 8132459: ExceptionInInitializerError from 'java -version' on Linux under zh_CN.GB18030 locale

2015-07-28 Thread Xueming Shen

yes, gb18030 needs to be in linux/unix std-solaris/unix as well.

-sherman

On 07/28/2015 09:51 AM, Volker Simonis wrote:

Hi Jonathan, Alan,

this is a known problem and we've already discussed it intensively.

Please have a look at:

8081674: EmptyStackException at startup if running with extended or
unsupported charset
https://bugs.openjdk.java.net/browse/JDK-8081674

and:

8087161: Fails to start up initialize system class loader running on
unsupported charset
https://bugs.openjdk.java.net/browse/JDK-8087161

8081674 has a long discussion and also detailed description on how
this can be reproduced.
@Jonathan: the problem with your test case is that it is not enough to
only set the appropriate locale, you also have to make sure that the
locale is installed (see bug discussion for more details). 8081674
finally only fixed a part of the problem and left the rest for
8087161.

The mailing list thread about this issue can be found here:

http://mail.openjdk.java.net/pipermail/core-libs-dev/2015-June/thread.html#33879

As your bug is an exact copy of 8087161 I've closed it as duplicate.

Regards,
Volker


On Tue, Jul 28, 2015 at 3:48 PM, Alan Batemanalan.bate...@oracle.com  wrote:

On 28/07/2015 10:50, 陆传胜(传胜) wrote:

Hello,


The issue
was found on one of my Linux boxes which uses locale zh_CN.GB18030 by
default,

a simple
patch was made to fix it, may I have it reviewed ?


webrev: http://cr.openjdk.java.net/~luchsh/webrev-8132459/

bug: https://bugs.openjdk.java.net/browse/JDK-8132459


I hope Sherman will have time to look at this and say whether GB18030 is
supposed java.base and so be listed in
jdk/make/data/charsetmapping/stdcs-linux.

My concern with this change is that it's bringing back code that was
deliberately removed as part of JDK-8038310. We want clean separation of the
java.base and jdk.charsets modules so that charsets that are needed for
startup in supported locales to be in java.base. Anything that is not needed
in java.base goes to jdk.charsets and is loaded via the extended charset
provider.

-Alan.