Skip to content

Commit dd87a59

Browse files
committed
another toLowerCase() fix
1 parent 820f78d commit dd87a59

File tree

1 file changed

+25
-3
lines changed

1 file changed

+25
-3
lines changed

src/main/java/com/fasterxml/jackson/databind/deser/impl/PropertyBasedCreator.java

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ protected PropertyBasedCreator(DeserializationContext ctxt,
5858
{
5959
_valueInstantiator = valueInstantiator;
6060
if (caseInsensitive) {
61-
_propertyLookup = new CaseInsensitiveMap();
61+
_propertyLookup = CaseInsensitiveMap.construct(ctxt.getConfig().getLocale());
6262
} else {
6363
_propertyLookup = new HashMap<String, SettableBeanProperty>();
6464
}
@@ -226,14 +226,36 @@ static class CaseInsensitiveMap extends HashMap<String, SettableBeanProperty>
226226
{
227227
private static final long serialVersionUID = 1L;
228228

229+
/**
230+
* Lower-casing can have Locale-specific minor variations.
231+
*
232+
* @since 2.11
233+
*/
234+
protected final Locale _locale;
235+
236+
@Deprecated // since 2.11
237+
public CaseInsensitiveMap() {
238+
this(Locale.getDefault());
239+
}
240+
241+
// @since 2.11
242+
public CaseInsensitiveMap(Locale l) {
243+
_locale = l;
244+
}
245+
246+
// @since 2.11
247+
public static CaseInsensitiveMap construct(Locale l) {
248+
return new CaseInsensitiveMap(l);
249+
}
250+
229251
@Override
230252
public SettableBeanProperty get(Object key0) {
231-
return super.get(((String) key0).toLowerCase());
253+
return super.get(((String) key0).toLowerCase(_locale));
232254
}
233255

234256
@Override
235257
public SettableBeanProperty put(String key, SettableBeanProperty value) {
236-
key = key.toLowerCase();
258+
key = key.toLowerCase(_locale);
237259
return super.put(key, value);
238260
}
239261
}

0 commit comments

Comments
 (0)