env = ( Hashtable ) env.clone();
    public final synchronized Context getInitialContext( Hashtable env ) throws NamingException    {        Configuration cfg = Configuration.toConfiguration( env );        env = ( Hashtable ) env.clone();                String principal = getPrincipal( env );        byte[] credential = getCredential( env );        String authentication = getAuthentication( env );        String providerUrl = getProviderUrl( env );        // Execute configuration        if( cfg instanceof ShutdownConfiguration )        {            ( ( DefaultContextFactoryService ) service ).shutdown();        }        else if( cfg instanceof SyncConfiguration )        {            service.sync();        }        else if( cfg instanceof StartupConfiguration )        {            service.startup( this, env );        }        else if( service == null )        {            throw new NamingException( "Unknown configuration: " + cfg );        }                return service.getConfiguration().getJndiContext( principal, credential, authentication, providerUrl );    }