Clear expression caches on context shutdown
Issue: SPR-12691
This commit is contained in:
parent
37c04bd9c8
commit
6b3092c236
|
|
@ -288,6 +288,7 @@ public abstract class CacheAspectSupport extends AbstractCacheInvoker
|
||||||
*/
|
*/
|
||||||
protected void clearMetadataCache() {
|
protected void clearMetadataCache() {
|
||||||
this.metadataCache.clear();
|
this.metadataCache.clear();
|
||||||
|
this.evaluator.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Object execute(CacheOperationInvoker invoker, Object target, Method method, Object[] args) {
|
protected Object execute(CacheOperationInvoker invoker, Object target, Method method, Object[] args) {
|
||||||
|
|
|
||||||
|
|
@ -123,6 +123,16 @@ class ExpressionEvaluator extends CachedExpressionEvaluator {
|
||||||
return getExpression(this.unlessCache, methodKey, unlessExpression).getValue(evalContext, boolean.class);
|
return getExpression(this.unlessCache, methodKey, unlessExpression).getValue(evalContext, boolean.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clear all caches.
|
||||||
|
*/
|
||||||
|
void clear() {
|
||||||
|
this.keyCache.clear();
|
||||||
|
this.conditionCache.clear();
|
||||||
|
this.unlessCache.clear();
|
||||||
|
this.targetMethodCache.clear();
|
||||||
|
}
|
||||||
|
|
||||||
private Method getTargetMethod(Class<?> targetClass, Method method) {
|
private Method getTargetMethod(Class<?> targetClass, Method method) {
|
||||||
AnnotatedElementKey methodKey = new AnnotatedElementKey(method, targetClass);
|
AnnotatedElementKey methodKey = new AnnotatedElementKey(method, targetClass);
|
||||||
Method targetMethod = this.targetMethodCache.get(methodKey);
|
Method targetMethod = this.targetMethodCache.get(methodKey);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue