diff --git a/spring-aop/src/main/java/org/springframework/aop/framework/AdvisedSupport.java b/spring-aop/src/main/java/org/springframework/aop/framework/AdvisedSupport.java index a82e77a0f1b9..c654811c44a2 100644 --- a/spring-aop/src/main/java/org/springframework/aop/framework/AdvisedSupport.java +++ b/spring-aop/src/main/java/org/springframework/aop/framework/AdvisedSupport.java @@ -283,16 +283,16 @@ public void removeAdvisor(int index) throws AopConfigException { "This configuration only has " + this.advisors.size() + " advisors."); } - Advisor advisor = this.advisors.get(index); + Advisor advisor = this.advisors.remove(index); if (advisor instanceof IntroductionAdvisor) { IntroductionAdvisor ia = (IntroductionAdvisor) advisor; // We need to remove introduction interfaces. - for (int j = 0; j < ia.getInterfaces().length; j++) { - removeInterface(ia.getInterfaces()[j]); + Class[] interfaces = ia.getInterfaces(); + for (Class iface : interfaces) { + removeInterface(iface); } } - this.advisors.remove(index); updateAdvisorArray(); adviceChanged(); }