 
                            ...
- Returning thisfrom a nonprivate (possiblyfinal) method invoked from the constructor of an object under construction
- Passing thisas an argument to an alien method invoked from the constructor of an object under construction
- Publishing thisusingpublic staticvariables from the constructor of an object under construction
- Publishing thissuch that pieces of code beyond its current scope can obtain its reference
- Calling a non-final method from a constructor (MET04-J. Ensure that constructors do not call overridable methods)
- Overriding the finalizer of a non-final class and obtaining the thisreference of a partially constructed initialized instance, when the construction of the object ceases (OBJ04-J. Do not allow partially initialized objects to be accessed)
- Passing internal object state to an alien method and consequently, exposing the thisreference of internal objects
...
This ensures that threads do not see a compromised Publisher instance. The num variable is also declared as final; consequently, the class is immutable. There is no threat of a caller invoking newInstance() to obtain a partially constructed initialized object because pu is not returned until the construction of the object is over.
...
Because the constructor is private, untrusted code cannot create instances of the class, prohibiting the this reference from escaping. Using a public static factory method to create new instances also protects against publication of partially constructed initialized objects (CON26-J. Do not publish partially initialized objects).
...