Description
All subclasses of ISOMetadata are currently synchronized. It probably doesn't have significant impact on the JAR file size, since (in my understanding) adding a synchronized keyword in the method signature just set a bit in a bitmask. However it may be a cause of thread contention.
Synchronization may not be necessary since the typical usage of metadata objects is:
- Create the metadata object once in a single thread.
- Declare the metadata as unmodifiable.
- Allow any thread to read (but not set) the metadata properties.
The potential contention, especially on metadata object shared by many other objects, would be unfortunate. However profiling this not show significant bottleneck yet.