Ehcache3.5.2不能删除cache缓存文件的问题
问题现象:
ehcache3.5.2,删除缓存文件的时候,抛异常Close not supported from UNINITIALIZED。
解决方案:
原因在于业务代码里错误多次调用cache.close(),导致currentState.get()被设置为Transition.UNINITIALIZED,而在Transition.UNINITIALIZED定义中,没有重写的close方法,只能调用Transition.close(),直接抛出此异常。
需要注意在ehcache3.5.2中,直接调用cache.destroyCache(String cacheName),即可直接直接删除缓存文件。
ehcache清理缓存时,会先将内存中的那一部分remove掉,之后会调用持久化服务将磁盘缓存文件中的文件删除。