RFR: 7174936: several String methods claim to always create new String

Stuart Marks stuart.marks at oracle.com
Thu Nov 7 01:31:37 UTC 2013


Hi all,

Please review the following spec changes to java.lang.String.

In several places the specs mention returning "new" strings. This is 
overspecified; it's sufficient to return "a" string that satisfies the required 
properties. In some cases the current implementation doesn't create a new string 
-- for example, substring(0) returns 'this' -- which is strictly a violation of 
the spec. The solution is to relax the spec requirement to create new strings.

Also, this change cleans up the specs for the copyValueOf() overloads to make 
them identical to the corresponding valueOf() overloads. Previously, they were 
gratuitously different. I think that some time in the dim, distant past, 
probably before JDK 1.0, they had different semantics, but now they're 
identical. The specs should say they're identical.

This change is spec only, no code changes.

Bug report:

     https://bugs.openjdk.java.net/browse/jdk-7174936

Webrev:

     http://cr.openjdk.java.net/~smarks/reviews/7174936/webrev.0/

Specdiff:

 
http://cr.openjdk.java.net/~smarks/reviews/7174936/specdiff.0/overview-summary.html

Thanks!

s'marks



More information about the core-libs-dev mailing list