On 15/05/2019 21:32, Roger Riggs wrote:
Please review a change in the synchronization during the creation of
an ObjectInputStream.
Currently, a synchronized block is used to initialize the streams
filter is read the global serial filter
which becomes a bottleneck under high concurrency. Since the value
only ever changes from null to non-null
once, the synchronization is not needed. Changing the field to
volatile and removing
the synchronization on read should alleviate the contention.
Issue:
https://bugs.openjdk.java.net/browse/JDK-8220166
Webrev:
http://cr.openjdk.java.net/~rriggs/webrev-fix-8220166/index.html
This looks okay. In passing, getSerialFilter's javadoc doesn't make
clear that it can return non-null when configured or set. The setter is
a bit clearer on this point.
-Alan