public void destroy() {
        if (cacheManagerImplicitlyCreated) {
            try {
                net.sf.ehcache.CacheManager cacheMgr = getCacheManager();
                cacheMgr.shutdown();
            } catch (Throwable t) {
                if (LOGGER.isWarnEnabled()) {
                    LOGGER.warn("Unable to cleanly shutdown implicitly created CacheManager instance.  "
                            + "Ignoring (shutting down)...", t);
                }
            } finally {
                this.manager = null;
                this.cacheManagerImplicitlyCreated = false;
            }
        }
    }
Shuts-down the wrapped Ehcache CacheManager <b>only if implicitly created</b>.
<p/>
If another component injected
a non-null CacheManager into this instance before calling {@link #init() init}, this instance expects that same
component to also destroy the CacheManager instance, and it will not attempt to do so.
support/ehcache/src/main/java/org/apache/shiro/cache/ehcache/EhCacheManager.java