Details
-
Bug
-
Resolution: Fixed
-
P4
-
None
-
None
-
b11
Description
ClassSpecializer.findSpecies uses computeIfAbsent to create an instance of and then load and link a SpeciesData class. The loading and linking might be a non-trivial operation, which means the ConcurrentHashMap used as a SpeciesData cache in ClassSpecializer could be partially blocked for longer than necessary. It also prohibits the loading/linking operation from relying on another species, since that would lead to a recursive update of the CHM from the same thread.
The instantiation of SpeciesData and the initialization thereof (if needed) should be split out so that the latter takes place after the computeIfAbsent.
The instantiation of SpeciesData and the initialization thereof (if needed) should be split out so that the latter takes place after the computeIfAbsent.
Attachments
Issue Links
- relates to
-
JDK-8202548 Use reservation Object when creating SpeciesData
-
- Resolved
-