Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
Jena 2.10.0
-
None
Description
The instance I am referring to concretely is the language tag constructor: LanguageTag.
It makes the following call on line 41: String lc = tag.toLowerCase(); This should be corrected to String lc = tag.toLowerCase(Locale.English);
The problem is that otherwise, it use the machine default language to produce the lower cases which in some Locales (Turkey being one of them) incorrectly lowercases letters like 'I'. Because the tag is a 'technical' term (not an actual piece of language) it should lowercase in English
The effect of this particular instance is that we see
System.err.println("Internal Error in static initializer of IanaLnaguageTag.")
appear in std.err and it has raised concerns with our customers.
In general, any occurrence of toLowerCase should be adjusted if it lowercases a technical term.