Skip to content
Critiq Docs

Search docs

Search documentation pages and rules

correctness.concurrency

Do not synchronize on string literals

String literals are interned and shared across the JVM.

#Metadata

Rule ID
java.correctness.sync-on-string-literal
Severity
medium
Confidence
0.88
Languages
java
Presets
strict
Stability
stable
Applies to
block
Tags
correctness, java, rules-catalog

#Why it matters

Synchronizing on interned strings can cause unexpected deadlocks.

#Remediation

Synchronize on a private final lock object instead.

#Repository path

The generated metadata points to critiq-rules/libs/rules/catalog/rules/java/java.correctness.sync-on-string-literal.rule.yaml.