== 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

[source,java]
----
public class Parent {

  synchronized void foo() {
    //...
  }
}

public class Child extends Parent {

 @Override
  public void foo () {  // Noncompliant
    // ...
    super.foo();
  }
}
----


=== Compliant solution

[source,java]
----
public class Parent {

  synchronized void foo() {
    //...
  }
}

public class Child extends Parent {

  @Override
  synchronized void foo () {
    // ...
    super.foo();
  }
}
----


== Resources

* https://wiki.sei.cmu.edu/confluence/x/gzdGBQ[CERT, TSM00-J] - Do not override thread-safe methods with methods that are not thread-safe

ifdef::env-github,rspecator-view[]

'''
== Implementation Specification
(visible only on this page)

=== Message

* Make this method "synchronized" to match the parent class implementation.


=== Highlighting

* method name for missing "synchronized" keyword


endif::env-github,rspecator-view[]
