Synchronization on 'this'
Reports synchronization on this or class expressions. The reported constructs include synchronized blocks and calls to wait(), notify() or notifyAll().
There are several reasons synchronization on this or class expressions may be a bad idea:
it makes synchronization a part of the external interface of the class, which makes a future change to a different locking mechanism difficult,
it becomes hard to track just who is locking on a given object,
it makes a denial-of-service attack possible, either on purpose or it can happen easily by accident when subclassing.
As an alternative, consider synchronizing on a private final lock object, access to which can be completely controlled.
Example:
Locating this inspection
- By ID
Can be used to locate inspection in e.g. Qodana configuration files, where you can quickly enable or disable it, or adjust its settings.
SynchronizeOnThis- Via Settings dialog
Path to the inspection settings via IntelliJ Platform IDE Settings dialog, when you need to adjust inspection settings directly from your IDE.
Suppressing Inspection
You can suppress this inspection by placing the following comment marker before the code fragment where you no longer want messages from this inspection to appear:
More detailed instructions as well as other ways and options that you have can be found in the product documentation:
Inspection Details | |
|---|---|
By default bundled with: |