-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Description
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.