diff --git a/src/main/java/org/springframework/data/mapping/callback/EntityCallbackDiscoverer.java b/src/main/java/org/springframework/data/mapping/callback/EntityCallbackDiscoverer.java index 913c8639a..67e617f61 100644 --- a/src/main/java/org/springframework/data/mapping/callback/EntityCallbackDiscoverer.java +++ b/src/main/java/org/springframework/data/mapping/callback/EntityCallbackDiscoverer.java @@ -19,7 +19,6 @@ import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; @@ -188,7 +187,7 @@ class EntityCallbackDiscoverer { private Collection> retrieveEntityCallbacks(ResolvableType entityType, ResolvableType callbackType, @Nullable CallbackRetriever retriever) { - List> allCallbacks = null; + List> allCallbacks = new ArrayList<>(); Set> callbacks; Set callbackBeans; @@ -199,9 +198,8 @@ class EntityCallbackDiscoverer { for (EntityCallback callback : callbacks) { if (supportsEvent(callback, entityType, callbackType)) { - - if (allCallbacks == null) { - allCallbacks = new ArrayList<>(); + if (retriever != null) { + retriever.getEntityCallbacks().add(callback); } allCallbacks.add(callback); } @@ -214,9 +212,7 @@ class EntityCallbackDiscoverer { Class callbackImplType = beanFactory.getType(callbackBeanName); if (callbackImplType == null || supportsEvent(callbackImplType, entityType)) { EntityCallback callback = beanFactory.getBean(callbackBeanName, EntityCallback.class); - - if ((allCallbacks == null || !allCallbacks.contains(callback)) - && supportsEvent(callback, entityType, callbackType)) { + if (!allCallbacks.contains(callback) && supportsEvent(callback, entityType, callbackType)) { if (retriever != null) { if (beanFactory.isSingleton(callbackBeanName)) { retriever.entityCallbacks.add(callback); @@ -224,10 +220,6 @@ class EntityCallbackDiscoverer { retriever.entityCallbackBeans.add(callbackBeanName); } } - - if (allCallbacks == null) { - allCallbacks = new ArrayList<>(); - } allCallbacks.add(callback); } } @@ -238,10 +230,6 @@ class EntityCallbackDiscoverer { } } - if (allCallbacks == null) { - return Collections.emptyList(); - } - AnnotationAwareOrderComparator.sort(allCallbacks); if (retriever != null && retriever.entityCallbackBeans.isEmpty()) { @@ -369,8 +357,6 @@ class EntityCallbackDiscoverer { private final Set> entityCallbacks = new LinkedHashSet<>(); - private final List> cachedEntityCallbacks = new ArrayList<>(); - private final Set entityCallbackBeans = new LinkedHashSet<>(); private final boolean preFiltered; @@ -381,22 +367,6 @@ class EntityCallbackDiscoverer { Collection> getEntityCallbacks() { - if (this.entityCallbackBeans.isEmpty()) { - - if (cachedEntityCallbacks.size() != entityCallbacks.size()) { - - List> entityCallbacks = new ArrayList<>(this.entityCallbacks); - AnnotationAwareOrderComparator.sort(entityCallbacks); - - synchronized (cachedEntityCallbacks) { - cachedEntityCallbacks.clear(); - cachedEntityCallbacks.addAll(entityCallbacks); - } - } - - return cachedEntityCallbacks; - } - List> allCallbacks = new ArrayList<>( this.entityCallbacks.size() + this.entityCallbackBeans.size()); allCallbacks.addAll(this.entityCallbacks);