mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-16 22:51:17 +07:00
25 lines
948 B
HTML
25 lines
948 B
HTML
<html>
|
|
<body>
|
|
Reports <code>synchronized</code> blocks that lock on an object initialized with a literal.
|
|
<p>
|
|
String literals are interned and <code>Character</code>, <code>Boolean</code> and <code>Number</code> 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.
|
|
</p>
|
|
<p><b>Example:</b></p>
|
|
<pre><code>
|
|
class Main {
|
|
final String mutex = "Mutex";
|
|
void method() {
|
|
synchronized (mutex) {
|
|
}
|
|
}
|
|
}
|
|
</code></pre>
|
|
<!-- tooltip end -->
|
|
<p>
|
|
Use the <strong>Warn on all possible literals</strong> option to report any synchronization on
|
|
<code>String</code>, <code>Character</code>, <code>Boolean</code> and <code>Number</code> objects.
|
|
</p>
|
|
</body>
|
|
</html> |