public void close() throws NamingException
public synchronized void close() throws NamingException
    public void close() throws NamingException    {        MultiException error = null;        Iterator list = this.backends.values().iterator();        // make sure this loop is not fail fast so all backing stores can        // have an attempt at closing down and synching their cached entries        while ( list.hasNext() )        {            BackingStore store = ( BackingStore ) list.next();            try            {                store.sync();                store.close();            }            catch ( NamingException e )            {                e.printStackTrace();                if ( error == null )                {                    error = new MultiException( "Grouping many exceptions on root nexus close()" );                }                // @todo really need to send this info to a monitor                error.addThrowable( e );            }        }        s_singleton = null;        if ( error != null )        {            NamingException total = new NamingException( "Encountered failures "                     + "while performing a close() operation on backing stores" );            total.setRootCause( error );        }    }