Reports synchronization on a call to getClass(). If the class containing the synchronization is subclassed, the subclass will synchronize on a different class object. Usually the call to getClass() can be replaced with a class literal expression, for example String.class. An even better solution is synchronizing on a private static final lock object, access to which can be completely controlled.

New in 2016.2