Not thread-safeΒΆ
ID: java/not-threadsafe
Kind: problem
Security severity:
Severity: warning
Precision: high
Tags:
- quality
- reliability
- concurrency
Query suites:
- java-code-quality.qls
Click to see the query in the CodeQL repository
In a thread-safe class, all field accesses that can be caused by calls to public methods must be properly synchronized.
RecommendationΒΆ
Protect the field access with a lock. Alternatively mark the field as volatile if the write operation is atomic. You can also choose to use a data type that guarantees atomic access. If the field is immutable, mark it as final.
ReferencesΒΆ
Java Language Specification, chapter 17: Threads and Locks.
Java concurrency package: java.util.concurrent.