Reports any synchronized block which locks on an object which is initialized with a literal. String literals are interned and Character, Boolean and Number literals can be allocated from a cache. Because of this, it is possible that some other part of the system which uses an object initialized with the same literal, is actually holding a reference to the exact same object. This can create unexpected dead-lock situations, if the lock object was thought to be private.

Use the checkbox below to warn on any synchronization on String, Character, Boolean and Number objects.