jackrabbit-oak-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thomas Mueller <muel...@adobe.com>
Subject Re: equalsIgnoreCase
Date Mon, 20 Aug 2012 13:35:11 GMT
Hi,

Actually, equalsIgnoreCase isn't a problem. The problem is just
String.toLower() and String.toUpper(). See also:

http://mattryall.net/blog/2009/02/the-infamous-turkish-locale-bug


So this returns true, as required:

  Locale.setDefault(new Locale("tr"));
  System.out.println("Ii".equalsIgnoreCase("iI"));

(compare upper+lower i with lower+upper i).

Regards,
Thomas



On 8/20/12 11:02 AM, "julian.reschke@gmx.de" <julian.reschke@gmx.de> wrote:

>I just stumbled upon equalsIgnoreCase being used without a specified
>locale (see below). As far as I understand, this is going to cause
>trouble for some locales (see
>http://www.i18nguy.com/unicode/turkish-i18n.html#problem).
>
>We probably should fix those to hardwire an english locale.
>
>Best regards, Julian
>
>-- snip --
>
>oak-core/src/main/java/org/apache/jackrabbit/oak/query/SQL2Parser.java:233
>: 
>            if ("ISSAMENODE".equalsIgnoreCase(name)) {
>oak-core/src/main/java/org/apache/jackrabbit/oak/query/SQL2Parser.java:243
>: 
>            } else if ("ISCHILDNODE".equalsIgnoreCase(name)) {
>oak-core/src/main/java/org/apache/jackrabbit/oak/query/SQL2Parser.java:247
>: 
>            } else if ("ISDESCENDANTNODE".equalsIgnoreCase(name)) {
>oak-core/src/main/java/org/apache/jackrabbit/oak/query/SQL2Parser.java:391
>: 
>        if ("CONTAINS".equalsIgnoreCase(functionName)) {
>oak-core/src/main/java/org/apache/jackrabbit/oak/query/SQL2Parser.java:430
>: 
>        } else if ("ISSAMENODE".equalsIgnoreCase(functionName)) {
>oak-core/src/main/java/org/apache/jackrabbit/oak/query/SQL2Parser.java:437
>: 
>        } else if ("ISCHILDNODE".equalsIgnoreCase(functionName)) {
>oak-core/src/main/java/org/apache/jackrabbit/oak/query/SQL2Parser.java:444
>: 
>        } else if ("ISDESCENDANTNODE".equalsIgnoreCase(functionName)) {
>oak-core/src/main/java/org/apache/jackrabbit/oak/query/SQL2Parser.java:482
>: 
>        if ("LENGTH".equalsIgnoreCase(functionName)) {
>oak-core/src/main/java/org/apache/jackrabbit/oak/query/SQL2Parser.java:484
>: 
>        } else if ("NAME".equalsIgnoreCase(functionName)) {
>oak-core/src/main/java/org/apache/jackrabbit/oak/query/SQL2Parser.java:490
>: 
>        } else if ("LOCALNAME".equalsIgnoreCase(functionName)) {
>oak-core/src/main/java/org/apache/jackrabbit/oak/query/SQL2Parser.java:496
>: 
>        } else if ("SCORE".equalsIgnoreCase(functionName)) {
>oak-core/src/main/java/org/apache/jackrabbit/oak/query/SQL2Parser.java:502
>: 
>        } else if ("LOWER".equalsIgnoreCase(functionName)) {
>oak-core/src/main/java/org/apache/jackrabbit/oak/query/SQL2Parser.java:504
>: 
>        } else if ("UPPER".equalsIgnoreCase(functionName)) {
>oak-core/src/main/java/org/apache/jackrabbit/oak/query/SQL2Parser.java:732
>: 
>        boolean result = token.equalsIgnoreCase(currentToken) &&
>!currentTokenQuoted;
>oak-core/src/main/java/org/apache/jackrabbit/oak/query/SQL2Parser.java:741
>: 
>        if (!expected.equalsIgnoreCase(currentToken) ||
>currentTokenQuoted) {
>oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/OakRepositoryFactory.j
>ava:39: 
>                if (uri.getScheme().equalsIgnoreCase("jcr-oak")) {
>oak-mk-remote/src/main/java/org/apache/jackrabbit/mk/client/HttpExecutor.j
>ava:171: 
>        if ("chunked".equalsIgnoreCase(encoding)) {
>oak-mk-remote/src/main/java/org/apache/jackrabbit/mk/client/HttpExecutor.j
>ava:192: 
>        if ("close".equalsIgnoreCase(connectionState)) {
>oak-mk-remote/src/main/java/org/apache/jackrabbit/mk/server/Request.java:2
>55: 
>            if ("chunked".equalsIgnoreCase(encoding)) {
>


Mime
View raw message