19
19
import java .lang .reflect .Modifier ;
20
20
import java .util .ArrayList ;
21
21
import java .util .Collection ;
22
- import java .util .Collections ;
23
22
import java .util .LinkedHashSet ;
24
23
import java .util .List ;
25
24
import java .util .Map ;
@@ -188,7 +187,7 @@ ResolvableType resolveDeclaredEntityType(Class<?> callbackType) {
188
187
private Collection <EntityCallback <?>> retrieveEntityCallbacks (ResolvableType entityType , ResolvableType callbackType ,
189
188
@ Nullable CallbackRetriever retriever ) {
190
189
191
- List <EntityCallback <?>> allCallbacks = null ;
190
+ List <EntityCallback <?>> allCallbacks = new ArrayList <>() ;
192
191
Set <EntityCallback <?>> callbacks ;
193
192
Set <String > callbackBeans ;
194
193
@@ -199,9 +198,8 @@ private Collection<EntityCallback<?>> retrieveEntityCallbacks(ResolvableType ent
199
198
200
199
for (EntityCallback <?> callback : callbacks ) {
201
200
if (supportsEvent (callback , entityType , callbackType )) {
202
-
203
- if (allCallbacks == null ) {
204
- allCallbacks = new ArrayList <>();
201
+ if (retriever != null ) {
202
+ retriever .getEntityCallbacks ().add (callback );
205
203
}
206
204
allCallbacks .add (callback );
207
205
}
@@ -214,20 +212,14 @@ private Collection<EntityCallback<?>> retrieveEntityCallbacks(ResolvableType ent
214
212
Class <?> callbackImplType = beanFactory .getType (callbackBeanName );
215
213
if (callbackImplType == null || supportsEvent (callbackImplType , entityType )) {
216
214
EntityCallback <?> callback = beanFactory .getBean (callbackBeanName , EntityCallback .class );
217
-
218
- if ((allCallbacks == null || !allCallbacks .contains (callback ))
219
- && supportsEvent (callback , entityType , callbackType )) {
215
+ if (!allCallbacks .contains (callback ) && supportsEvent (callback , entityType , callbackType )) {
220
216
if (retriever != null ) {
221
217
if (beanFactory .isSingleton (callbackBeanName )) {
222
218
retriever .entityCallbacks .add (callback );
223
219
} else {
224
220
retriever .entityCallbackBeans .add (callbackBeanName );
225
221
}
226
222
}
227
-
228
- if (allCallbacks == null ) {
229
- allCallbacks = new ArrayList <>();
230
- }
231
223
allCallbacks .add (callback );
232
224
}
233
225
}
@@ -238,10 +230,6 @@ && supportsEvent(callback, entityType, callbackType)) {
238
230
}
239
231
}
240
232
241
- if (allCallbacks == null ) {
242
- return Collections .emptyList ();
243
- }
244
-
245
233
AnnotationAwareOrderComparator .sort (allCallbacks );
246
234
247
235
if (retriever != null && retriever .entityCallbackBeans .isEmpty ()) {
@@ -369,8 +357,6 @@ class CallbackRetriever {
369
357
370
358
private final Set <EntityCallback <?>> entityCallbacks = new LinkedHashSet <>();
371
359
372
- private final List <EntityCallback <?>> cachedEntityCallbacks = new ArrayList <>();
373
-
374
360
private final Set <String > entityCallbackBeans = new LinkedHashSet <>();
375
361
376
362
private final boolean preFiltered ;
@@ -381,22 +367,6 @@ class CallbackRetriever {
381
367
382
368
Collection <EntityCallback <?>> getEntityCallbacks () {
383
369
384
- if (this .entityCallbackBeans .isEmpty ()) {
385
-
386
- if (cachedEntityCallbacks .size () != entityCallbacks .size ()) {
387
-
388
- List <EntityCallback <?>> entityCallbacks = new ArrayList <>(this .entityCallbacks );
389
- AnnotationAwareOrderComparator .sort (entityCallbacks );
390
-
391
- synchronized (cachedEntityCallbacks ) {
392
- cachedEntityCallbacks .clear ();
393
- cachedEntityCallbacks .addAll (entityCallbacks );
394
- }
395
- }
396
-
397
- return cachedEntityCallbacks ;
398
- }
399
-
400
370
List <EntityCallback <?>> allCallbacks = new ArrayList <>(
401
371
this .entityCallbacks .size () + this .entityCallbackBeans .size ());
402
372
allCallbacks .addAll (this .entityCallbacks );
0 commit comments