Simplify equals() implementation in PerTargetInstantiationModelPointcut
For equivalence, we only need to compare the preInstantiationPointcut fields since they include the declaredPointcut fields. In addition, we should not compare the aspectInstanceFactory fields since LazySingletonAspectInstanceFactoryDecorator does not implement equals(). See gh-31238
This commit is contained in:
@@ -302,10 +302,12 @@ final class InstantiationModelAwarePointcutAdvisorImpl
|
||||
|
||||
@Override
|
||||
public boolean equals(@Nullable Object other) {
|
||||
// For equivalence, we only need to compare the preInstantiationPointcut fields since
|
||||
// they include the declaredPointcut fields. In addition, we should not compare the
|
||||
// aspectInstanceFactory fields since LazySingletonAspectInstanceFactoryDecorator does
|
||||
// not implement equals().
|
||||
return (this == other || (other instanceof PerTargetInstantiationModelPointcut that &&
|
||||
ObjectUtils.nullSafeEquals(this.declaredPointcut, that.declaredPointcut) &&
|
||||
ObjectUtils.nullSafeEquals(this.preInstantiationPointcut, that.preInstantiationPointcut) &&
|
||||
ObjectUtils.nullSafeEquals(this.aspectInstanceFactory, that.aspectInstanceFactory)));
|
||||
ObjectUtils.nullSafeEquals(this.preInstantiationPointcut, that.preInstantiationPointcut)));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user