On 9/6/16, 10:09 AM, Tim Ellison wrote:
Has it been noted that while JEP 254 reduces the space occupied by one
byte per character strings, moving from a char[] to byte[]
representation universally means that the maximum length of a UTF-16
(two bytes per char) string is now halved?
Hi Tim,
Yes, it's a known "limit" given the nature of the approach. It is not
considered
to be an "incompatible change", because the max length the String class and
the corresponding buffer/builder classes can support is really an
implementation
details, not a spec requirement. The conclusion from the discussion back
then
was this is something we can trade off for the benefits we gain from
the approach.
Do we have a real use case that impacted by this change?
Thanks,
Sherman
Since the goal is "preserving full compatibility", this has been missed
by failing to allow for UTF-16 strings of length greater than
Integer.MAX_VALUE / 2.
Regards,
Tim