lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Steven Rowe (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (LUCENE-3983) HTMLCharacterEntities.jflex uses String.toUpperCase without Locale
Date Sat, 14 Apr 2012 16:43:17 GMT

    [ https://issues.apache.org/jira/browse/LUCENE-3983?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13254144#comment-13254144
] 

Steven Rowe commented on LUCENE-3983:
-------------------------------------

Maybe a better idea would be to convert {{upperCaseVariantsAccepted}} into a map, so that
runtime uppercasing isn't required:

{code:java}
  private static final Map<String,String> upperCaseVariantsAccepted
      = new HashMap<String,String>();
  static {
    upperCaseVariantsAccepted.put("quot", "QUOT");
    upperCaseVariantsAccepted.put("copy", "COPY");
    upperCaseVariantsAccepted.put("gt", "GT");
    upperCaseVariantsAccepted.put("lt", "LT");
    upperCaseVariantsAccepted.put("reg", "REG");
    upperCaseVariantsAccepted.put("amp", "AMP");
  }
[...]
  for (int i = 0 ; i < entities.length ; i += 2) {
    Character value = entities[i + 1].charAt(0);
    entityValues.put(entities[i], value);
    String upperCaseVariant = upperCaseVariantsAccepted.get(entities[i]);
    if (upperCaseVariant != null) {
      entityValues.put(upperCaseVariant, value);
    }
  }
{code}
                
> HTMLCharacterEntities.jflex uses String.toUpperCase without Locale
> ------------------------------------------------------------------
>
>                 Key: LUCENE-3983
>                 URL: https://issues.apache.org/jira/browse/LUCENE-3983
>             Project: Lucene - Java
>          Issue Type: Bug
>            Reporter: Uwe Schindler
>            Assignee: Steven Rowe
>
> Is this expected?
> {code:java}
>       "xi", "\u03BE", "yacute", "\u00FD", "yen", "\u00A5", "yuml", "\u00FF",
>       "zeta", "\u03B6", "zwj", "\u200D", "zwnj", "\u200C"
>     };
>     for (int i = 0 ; i < entities.length ; i += 2) {
>       Character value = entities[i + 1].charAt(0);
>       entityValues.put(entities[i], value);
>       if (upperCaseVariantsAccepted.contains(entities[i])) {
>         entityValues.put(entities[i].toUpperCase(), value);
>       }
>     }
> {code}
> In my opinion, this should look like:
> {code:java}
>       "xi", "\u03BE", "yacute", "\u00FD", "yen", "\u00A5", "yuml", "\u00FF",
>       "zeta", "\u03B6", "zwj", "\u200D", "zwnj", "\u200C"
>     };
>     for (int i = 0 ; i < entities.length ; i += 2) {
>       Character value = entities[i + 1].charAt(0);
>       entityValues.put(entities[i], value);
>       if (upperCaseVariantsAccepted.contains(entities[i])) {
>         entityValues.put(entities[i].toUpperCase(Locale.ENGLISH), value);
>       }
>     }
> {code}
> (otherwise in the Turkish locale, the entities containing "i" (like "xi" -> '\u03BE')
will not be detected correctly).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message