Any interaction with an InitialContext object may cause a
NoInitialContextException to be thrown. The
InitialContext implementation may choose to defer getting the
initial context until any of its methods are invoked.
Multithreaded access to a NoInitialContextException instance
is only safe when client code locks the object first.