CLDR Ticket #7429(accepted unknown)
Change DisplayAndInputProcessor.processForDisplay to not be synchronized [only branch]
|Reported by:||mark||Owned by:||googler|
This means checking for everything involved: instance and static fields, etc. and making sure that they are properly handled.
There are multiple field variables in use:
col : Collator
isPosix : boolean
locale : CLDRLocale
pp : PrettyPrinter
spaceCol : Collator
Plus a batch of static variables. Most of those are immutable, but each one needs to be examined. Special ones to watch for are transforms and collators. Collators for example are not thread-safe unless frozen (I filed http://unicode.org/cldr/trac/ticket/7428, which Robert should take and do unless someone squeals). I don't know off-hand about the transforms.
Making synchronization more granular is, in general, a worthy goal. However, it can be complicated to do, because we have to check not only the instance fields, but also the static fields for thread safety; and watch for deadlocks, of course. So the testing needs to be thorough.
So we only really want to go through that effort where we determine by testing that there is a problem.
- Owner changed from anybody to ribnitz
- Priority changed from assess to major
- Status changed from new to assigned
- Milestone changed from UNSCH to 26dsub
- Status changed from assigned to reviewing
- Review set to mark