On Thu, Sep 16, 2010 at 10:50 AM, Tim Ellison <t.p.elli...@gmail.com> wrote:
> > The principle works ok. I attached a patch on HARMONY-6649 to show that > making a local toUpperCase() method for the charset names solves the > circularity problem in bootstrapping, and does the right thing > irrespective of locale. > > There are some compatibility issues though, since on the RI > String foo="foo"; > foo.toLowerCase() == foo > > but it doesn't if we simply use ICU's toLowerCase method :-( > maybe we could ask ICU if they could fix this? i looked at their toLowerCase/toUpperCase methods and it wouldnt require too much hacking: their UCaseProps returns ~ch whenever ch 'folds to itself', so its easy to track if its 'unchanged' without doing a second pass/equals(). they might be interested in improved compatibility also. > > I also expect we need to fix String#equalsIgnoreCase() to do the right > thing... > > yes, i noticed this too, we don't have to deal with Locale issues there, but we have to iterate codepoints / compare with Character.toLowerCase(int) and Character.toUpperCase(int)... -- Robert Muir rcm...@gmail.com