Inspectopedia Help

Synchronization on variable initialized with literal

Reports synchronized blocks which lock on an object which is initialized with a literal.

String literals are interned 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 string was thought to be private.

Inspection Details

By default bundled with:

IntelliJ IDEA 2024.1, Qodana for JVM 2024.1,

Can be installed with plugin:

Groovy, 241.14841

Last modified: 12 March 2024