You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Skimming through ChannelAdaptor source it seems in this line the disconnectLock is the shared Boolean.TRUE object.
This might be unsafe as someone might inadvertly deadlock the shutdown of a ChannelAdaptor by locking on Boolean.True. Also this would make the lock static in scope given that this lock instance would be shared among all other ChannelAdaptors.
Finally synchronizing against Boolean is warned against by the Java spec as Boolean and a few other java.lang classes are considered ValueBased classes. (See @jdk.internal.ValueBased)
A program may produce unpredictable results if it attempts to distinguish two references to equal values of a value-based class, whether directly via reference equality or indirectly via an appeal to synchronization, identity hashing, serialization, or any other identity-sensitive mechanism
Seems it could be swapped for new Object() without any side effect as far as I could see.
Probably never harmed anyone but better be safe!
Cheers
The text was updated successfully, but these errors were encountered:
Hello everyone,
Skimming through ChannelAdaptor source it seems in this line the disconnectLock is the shared Boolean.TRUE object.
This might be unsafe as someone might inadvertly deadlock the shutdown of a ChannelAdaptor by locking on Boolean.True. Also this would make the lock static in scope given that this lock instance would be shared among all other ChannelAdaptors.
Finally synchronizing against Boolean is warned against by the Java spec as Boolean and a few other java.lang classes are considered ValueBased classes. (See @jdk.internal.ValueBased)
Seems it could be swapped for
new Object()
without any side effect as far as I could see.Probably never harmed anyone but better be safe!
Cheers
The text was updated successfully, but these errors were encountered: