From: Andy Heninger Date: Wed, 2 Jul 2014 22:19:59 +0000 (+0000) Subject: ICU-10908 LocaleDisplayNames thread safety fix. X-Git-Tag: milestone-59-0-1~1807 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a0e8aa8bc96809914f9f8e448111f08320f6ef74;p=icu ICU-10908 LocaleDisplayNames thread safety fix. X-SVN-Rev: 35988 --- diff --git a/icu4j/main/classes/core/src/com/ibm/icu/impl/LocaleDisplayNamesImpl.java b/icu4j/main/classes/core/src/com/ibm/icu/impl/LocaleDisplayNamesImpl.java index 785bde3612c..e818ff0539e 100644 --- a/icu4j/main/classes/core/src/com/ibm/icu/impl/LocaleDisplayNamesImpl.java +++ b/icu4j/main/classes/core/src/com/ibm/icu/impl/LocaleDisplayNamesImpl.java @@ -220,12 +220,14 @@ public class LocaleDisplayNamesImpl extends LocaleDisplayNames { (capitalizationUsage != null && capitalizationUsage[usage.ordinal()]) )) { // Note, won't have capitalizationUsage != null && capitalizationUsage[usage.ordinal()] // unless capitalization is CAPITALIZATION_FOR_UI_LIST_OR_MENU or CAPITALIZATION_FOR_STANDALONE - if (capitalizationBrkIter == null) { - // should only happen when deserializing, etc. - capitalizationBrkIter = BreakIterator.getSentenceInstance(locale); + synchronized (this) { + if (capitalizationBrkIter == null) { + // should only happen when deserializing, etc. + capitalizationBrkIter = BreakIterator.getSentenceInstance(locale); + } + return UCharacter.toTitleCase(locale, name, capitalizationBrkIter, + UCharacter.TITLECASE_NO_LOWERCASE | UCharacter.TITLECASE_NO_BREAK_ADJUSTMENT); } - return UCharacter.toTitleCase(locale, name, capitalizationBrkIter, - UCharacter.TITLECASE_NO_LOWERCASE | UCharacter.TITLECASE_NO_BREAK_ADJUSTMENT); } return name; }