public synchronized void destroy() throws Throwable {

        try {
            if (m_driverManager != null) {
                if (m_driverManager.getLockManager() != null) {
                    try {
                        writeLocks();
                    } catch (Throwable t) {
                        if (LOG.isErrorEnabled()) {
                            LOG.error(
                                org.opencms.lock.Messages.get().getBundle().key(
                                    org.opencms.lock.Messages.ERR_WRITE_LOCKS_FINAL_0),
                                t);
                        }
                    }
                }
                m_driverManager.destroy();
            }
        } catch (Throwable t) {
            if (LOG.isErrorEnabled()) {
                LOG.error(Messages.get().getBundle().key(Messages.LOG_ERR_DRIVER_MANAGER_CLOSE_0), t);
            }
        }

        m_driverManager = null;
        m_dbContextFactory = null;

        if (CmsLog.INIT.isInfoEnabled()) {
            CmsLog.INIT.info(
                Messages.get().getBundle().key(Messages.INIT_SECURITY_MANAGER_SHUTDOWN_1, this.getClass().getName()));
        }
    }
public synchronized void destroy ( ) throws Throwable { try { if ( m_driverManager != null ) { if ( m_driverManager . getLockManager ( ) != null ) { try { writeLocks ( ) ; } catch ( Throwable t ) { if ( LOG . isErrorEnabled ( ) ) { LOG . error ( org . opencms . lock . Messages . get ( ) . getBundle ( ) . key ( org . opencms . lock . Messages . ERR_WRITE_LOCKS_FINAL_0 ) , t ) ; } } } m_driverManager . destroy ( ) ; } } catch ( Throwable t ) { if ( LOG . isErrorEnabled ( ) ) { LOG . error ( Messages . get ( ) . getBundle ( ) . key ( Messages . LOG_ERR_DRIVER_MANAGER_CLOSE_0 ) , t ) ; } } m_driverManager = null ; m_dbContextFactory = null ; if ( CmsLog . INIT . isInfoEnabled ( ) ) { CmsLog . INIT . info ( Messages . get ( ) . getBundle ( ) . key ( Messages . INIT_SECURITY_MANAGER_SHUTDOWN_1 , this . getClass ( ) . getName ( ) ) ) ; } }
Destroys this security manager.<p>

@throws Throwable if something goes wrong