A ``++readObject++`` method is written when a ``++Serializable++`` object needs special handling to be rehydrated from file. It should be the case that the object being created by ``++readObject++`` is only visible to the thread that invoked the method, and the ``++synchronized++`` keyword is not needed, and using ``++synchronized++`` anyway is just confusing. If this is not the case, the method should be refactored to make it the case.


== Noncompliant Code Example

[source,java]
----
private synchronized void readObject(java.io.ObjectInputStream in)
     throws IOException, ClassNotFoundException { // Noncompliant
  //...
}
----


== Compliant Solution

[source,java]
----
private void readObject(java.io.ObjectInputStream in)
     throws IOException, ClassNotFoundException { // Compliant
  //...
}
----

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

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

include::message.adoc[]

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