if (factory != null) impl = factory.createSocketImpl(); else impl = new PlainSocketImpl();
if (impl == null) throw new NullPointerException("impl may not be null");
  public ServerSocket() throws IOException  {    if (factory != null)      impl = factory.createSocketImpl();    else      impl = new PlainSocketImpl();    impl.create(true);  }