Skip to content

i - I case conversion problem in Turkish locale #953

@rmatesz

Description

@rmatesz

In Turkish language there are two kind of i letter and therefore there is a common issue when trying to convert to lower or upper case (check: http://lotusnotus.com/lotusnotus_en.nsf/dx/dotless-i-tolowercase-and-touppercase-functions-use-responsibly.htm).
When a JSON string which contains field starting with upper case i (e.g. Icon) is being tried to deserialize with caseInsensitive = true property, the mapper is unable to find and fill the "icon" field in the object model because of the convertion issue described above.
Technical info: I've checked the source code of the library and there are some places where toLowerCase and/or toUpperCase is called with default Locale. These calls should be done with English locale when the calls are key-related to avoid this kind of issues.

Here is the specific place for the actual issue: https://github.com/FasterXML/jackson-databind/blob/master/src/main/java/com/fasterxml/jackson/databind/deser/impl/BeanPropertyMap.java#L314

Workaround: JsonProperty annotation have to be set for these fields to exactly set the name case-sensitively.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions