
org.sonar.l10n.java.rules.java.S3551.html Maven / Gradle / Ivy
Why is this an issue?
When @Overrides
of synchronized
methods are not themselves synchronized
, the result can be improper
synchronization as callers rely on the thread-safety promised by the parent class.
Noncompliant code example
public class Parent {
synchronized void foo() {
//...
}
}
public class Child extends Parent {
@Override
public void foo () { // Noncompliant
// ...
super.foo();
}
}
Compliant solution
public class Parent {
synchronized void foo() {
//...
}
}
public class Child extends Parent {
@Override
synchronized void foo () {
// ...
super.foo();
}
}
Resources
- CERT, TSM00-J - Do not override thread-safe methods with methods that are not
thread-safe
© 2015 - 2025 Weber Informatics LLC | Privacy Policy