icf = (InitialContextFactory) Class.forName (java_naming_factory_initial).newInstance ();
icf = (InitialContextFactory)Class.forName (java_naming_factory_initial, true, Thread.currentThread().getContextClassLoader()) .newInstance ();
  public static Context getInitialContext (Hashtable environment)    throws NamingException  {    InitialContextFactory icf = null;        if (icfb != null)      icf = icfb.createInitialContextFactory(environment);    else      {	 	String java_naming_factory_initial = null;	if (environment != null)	  java_naming_factory_initial	    = (String) environment.get (Context.INITIAL_CONTEXT_FACTORY);	if (java_naming_factory_initial == null)	  java_naming_factory_initial =	    System.getProperty (Context.INITIAL_CONTEXT_FACTORY);	if (java_naming_factory_initial == null)	  throw new	    NoInitialContextException ("Can't find property: "				       + Context.INITIAL_CONTEXT_FACTORY);	try	  {	    icf = (InitialContextFactory) Class.forName (java_naming_factory_initial).newInstance ();	  }	catch (Exception exception)	  {	    NoInitialContextException e	      = new NoInitialContextException ("Can't load InitialContextFactory class: "					       + java_naming_factory_initial);	    e.setRootCause(exception);	    throw e;	  }      }    return icf.getInitialContext (environment);  }