Out of Date
Details
Assignee
UnassignedUnassignedReporter
Gunnar MorlingGunnar MorlingParticipants
Guillaume SmetGunnar MorlingHardy FerentschikComponents
Priority
Major
Details
Details
Assignee
Unassigned
UnassignedReporter
Gunnar Morling
Gunnar MorlingParticipants
Guillaume Smet
Gunnar Morling
Hardy Ferentschik
Components
Priority
Created March 5, 2011 at 1:58 PM
Updated October 25, 2017 at 12:50 PM
Resolved October 25, 2017 at 12:50 PM
The internal meta model (BeanMetaDataImpl et al.) as well as the external one (BeanDescriptorImpl et al.) should be completely unmodifiable, as they could potentially be accessed from multiple threads at the same time.
I made some more fields final/unmodifiable with HV-371, but there are some places left which I couldn't change easily and need some more consideration:
ConstraintDescriptorImpl#compositionType
ElementDescriptorImpl#constraintDescriptors
BeanMetaDatImpl#cascadedMembers (could be made unmodifiable after initialization instead of creating a new unmodifiable set with each call of getCascadedMembers()
When looking through the model I found it quite complex to find out which collection fields are already unmodifiable and which not. I therefore thought about introducing a marker annotation @Unmodifiable which could be used to document unmodifiable fields. WDYT?