else
else if( provider == null )
    public final synchronized Context getInitialContext( Hashtable env ) throws NamingException    {        Configuration cfg = Configuration.toConfiguration( env );        env = ( Hashtable ) env.clone();                String principal = extractPrincipal( env );        byte[] credential = extractCredential( env );        String authentication = extractAuthentication( env );        String providerUrl = extractProviderUrl( env );        // Execute configuration        if( cfg instanceof ShutdownConfiguration )        {            provider.shutdown();        }        else if( cfg instanceof SyncConfiguration )        {            provider.sync();        }        else if( cfg instanceof StartupConfiguration )        {            ( ( DefaultContextFactoryConfiguration ) provider ).startup( this, env );        }        else        {            throw new NamingException( "Unknown configuration: " + cfg );        }                return provider.getJndiContext( principal, credential, authentication, providerUrl );    }