The factory method should be lock-protected (even if just for efficiency). And, unless you ensure the entire class is stateless, all non-static methods must also be lock-protected.
Hope this helps. :-)