RFR: 8145351: test/java/text/Format/DateFormat/Bug8141243.java fails in jake b96

Masayoshi Okutsu masayoshi.okutsu at oracle.com
Wed Jan 6 23:58:39 UTC 2016


On 1/6/2016 6:48 PM, Alan Bateman wrote:
>
>
> On 06/01/2016 06:40, Masayoshi Okutsu wrote:
>> On 1/5/2016 10:38 PM, Alan Bateman wrote:
>>>
>>> One other question on this is whether there are concurrency issues 
>>> with the candidate list? I ask because candidateMap is a CHM but the 
>>> map value (the candidate list) seems to be queried (via the size 
>>> method) and updated in getCandidateLocale without any 
>>> synchronization. Is this a concern?
>>
>> The candidate list (candidates) won't be modified once it's been put 
>> in candidatesMap. Are you referring to some other case?
> I should have been clearer. Suppose two threads invoke 
> LocaleDataStrategy's getCandidateLocales at round the same time. There 
> is no entry in the candidateMap so get will get the list of candidates 
> via the adpater or default control getCandidateLocales. If I read the 
> code correctly then they will both mutate this list and then race to 
> add it to the candidateMap. So maybe my question is really about the 
> return from adpater or default control getCandidateLocales - is it 
> okay to mutable this list, maybe these methods already return a new List?

Each call to adapter or default control getCandidateLocales creates a 
new ArrayList. There should be no concurrent modification issues.

Masayoshi


More information about the jigsaw-dev mailing list