String.lastIndexOf confused by unpaired trailing surrogate

Ulf Zibis Ulf.Zibis at gmx.de
Sat Mar 20 22:05:53 UTC 2010


Good catch!
Additionally consider my additional twiddling on indexOf.

-Ulf


Am 20.03.2010 19:36, schrieb Martin Buchholz:
> For a change, here's an actual plain old "incorrect result" bug fix
> for String.lastIndexOf
>
> Sherman, please file a bug and review.
>
> http://cr.openjdk.java.net/~martin/webrevs/openjdk7/lastIndexOf/
>
> Also includes our usual performance-oriented fiddling.
>
> public class LastIndexOf {
>      public static void main(String[] args) {
>          int ch = 0x10042;
>          char[] bug = new char[3];
>          Character.toChars(ch, bug, 0);
>          bug[2] = bug[0];
>          System.out.println(new String(bug).lastIndexOf(ch));
>          bug[2] = '!';
>          System.out.println(new String(bug).lastIndexOf(ch));
>      }
> }
> ==>  javac -source 1.6 -Xlint:all LastIndexOf.java
> ==>  java -esa -ea LastIndexOf
> -1
> 0
>
>
>    




More information about the core-libs-dev mailing list