From 9825192b0f54682faa39b7467b55372b679db544 Mon Sep 17 00:00:00 2001 From: acolyer Date: Wed, 14 Dec 2005 00:53:28 +0000 Subject: [PATCH] fixes inefficient ordering of tests in SignaturePattern (that I inadvertantly introduced earlier), and corrects @DeclareParents impl in AJTypeSystem :- fields should NOT be shown, and nor should non-interface members. --- .../internal/lang/reflect/AjTypeImpl.java | 36 +++--------------- .../InterTypeMethodDeclarationImpl.java | 4 +- lib/aspectj/lib/aspectjrt.jar | Bin 109275 -> 109128 bytes lib/test/aspectjrt.jar | Bin 109275 -> 109128 bytes .../reflection/AtAspectJDeclareParents.aj | 8 +++- .../ReflectOnAtAspectJDeclareParents.java | 16 +------- .../org/aspectj/systemtest/ajc150/ajc150.xml | 2 - .../weaver/patterns/SignaturePattern.java | 21 +++++----- 8 files changed, 27 insertions(+), 60 deletions(-) diff --git a/aspectj5rt/java5-src/org/aspectj/internal/lang/reflect/AjTypeImpl.java b/aspectj5rt/java5-src/org/aspectj/internal/lang/reflect/AjTypeImpl.java index 54c500801..482ccebb9 100644 --- a/aspectj5rt/java5-src/org/aspectj/internal/lang/reflect/AjTypeImpl.java +++ b/aspectj5rt/java5-src/org/aspectj/internal/lang/reflect/AjTypeImpl.java @@ -662,17 +662,12 @@ public class AjTypeImpl implements AjType { for (Field f : clazz.getDeclaredFields()) { if (!f.getType().isInterface()) continue; if (!Modifier.isPublic(f.getModifiers()) || !Modifier.isStatic(f.getModifiers())) continue; - if (f.isAnnotationPresent(org.aspectj.lang.annotation.DeclareParents.class)) { - Class itdSource = f.getType(); - try { - itdSource = f.get(null).getClass(); - } catch (IllegalAccessException ex) { - // - } - for (Method itdM : itdSource.getDeclaredMethods()) { + if (f.isAnnotationPresent(org.aspectj.lang.annotation.DeclareParents.class)) { + for (Method itdM : f.getType().getDeclaredMethods()) { if (!Modifier.isPublic(itdM.getModifiers()) && publicOnly) continue; InterTypeMethodDeclaration itdm = new InterTypeMethodDeclarationImpl( - this, AjTypeSystem.getAjType(f.getType()), itdM + this, AjTypeSystem.getAjType(f.getType()), itdM, + Modifier.PUBLIC ); toList.add(itdm); } @@ -684,28 +679,7 @@ public class AjTypeImpl implements AjType { private void addAnnotationStyleITDFields(List toList, boolean publicOnly) { //AV: I think it is meaningless //@AJ decp is interface driven ie no field - // AMC: private fields in the mixin type should show as ITDs private to the aspect... - if (isAspect()) { - for (Field f : clazz.getDeclaredFields()) { - if (!f.getType().isInterface()) continue; - if (!Modifier.isPublic(f.getModifiers()) || !Modifier.isStatic(f.getModifiers())) continue; - if (f.isAnnotationPresent(org.aspectj.lang.annotation.DeclareParents.class)) { - Class itdSource = f.getType(); - try { - itdSource = f.get(null).getClass(); - } catch (IllegalAccessException ex) { - // - } - for (Field itdF : itdSource.getDeclaredFields()) { - if (!Modifier.isPublic(itdF.getModifiers()) && publicOnly) continue; - InterTypeFieldDeclaration itdf = new InterTypeFieldDeclarationImpl( - this, AjTypeSystem.getAjType(f.getType()), itdF - ); - toList.add(itdf); - } - } - } - } + return; } /* (non-Javadoc) diff --git a/aspectj5rt/java5-src/org/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl.java b/aspectj5rt/java5-src/org/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl.java index 2ed2f89cf..eb085a055 100644 --- a/aspectj5rt/java5-src/org/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl.java +++ b/aspectj5rt/java5-src/org/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl.java @@ -47,8 +47,8 @@ public class InterTypeMethodDeclarationImpl extends InterTypeDeclarationImpl this.baseMethod = itdInterMethod; } - public InterTypeMethodDeclarationImpl(AjType decType, AjType targetType, Method base) { - super(decType,targetType,base.getModifiers()); + public InterTypeMethodDeclarationImpl(AjType decType, AjType targetType, Method base, int modifiers) { + super(decType,targetType,modifiers); this.parameterAdjustmentFactor = 0; this.name = base.getName(); this.baseMethod = base; diff --git a/lib/aspectj/lib/aspectjrt.jar b/lib/aspectj/lib/aspectjrt.jar index 60ce8de3780f2c02aca9ebe6ef54ec1c646b0d32..f8d847b2f58d4edb8c610a22dcd0a7bdc8baaf75 100644 GIT binary patch delta 19719 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 CLPXsF delta 19949 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 w%vvX@iQ1#wrEtbst{|vdX4QHlV&eUO!Df=MK>^ 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 CLPXsF delta 19949 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 w%vvX@iQ1#wrEtbst{|vdX4QHlV&eUO!Df=MK>^ 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 ajType) { InterTypeFieldDeclaration[] itdfs = ajType.getDeclaredITDFields(); - assertEquals(1,itdfs.length,"number of declared ITD fields"); - System.out.println(itdfs[0]); - try { - InterTypeFieldDeclaration shouldFind = ajType.getDeclaredITDField("x",AjTypeSystem.getAjType(I.class)); - System.out.println(shouldFind); - } catch (NoSuchFieldException ex) { - throw new RuntimeException("getITDField failed"); - } - try { - ajType.getDeclaredITDField("p",AjTypeSystem.getAjType(C.class)); - throw new RuntimeException("failed to fail in getting ITDField"); - } catch (NoSuchFieldException ex) { - // good! - } - + assertEquals(0,itdfs.length,"number of declared ITD fields"); } private void testInterTypeFields(AjType ajType) { diff --git a/tests/src/org/aspectj/systemtest/ajc150/ajc150.xml b/tests/src/org/aspectj/systemtest/ajc150/ajc150.xml index d6814e28e..13bd9e496 100644 --- a/tests/src/org/aspectj/systemtest/ajc150/ajc150.xml +++ b/tests/src/org/aspectj/systemtest/ajc150/ajc150.xml @@ -290,8 +290,6 @@ - - diff --git a/weaver/src/org/aspectj/weaver/patterns/SignaturePattern.java b/weaver/src/org/aspectj/weaver/patterns/SignaturePattern.java index 445cc53a1..9515ec8cc 100644 --- a/weaver/src/org/aspectj/weaver/patterns/SignaturePattern.java +++ b/weaver/src/org/aspectj/weaver/patterns/SignaturePattern.java @@ -312,21 +312,24 @@ public class SignaturePattern extends PatternNode { // else return FuzzyBoolean.MAYBE; } - // annotations match on the *subject* - if (!matchesAnnotations(aMember,inAWorld).alwaysTrue()) { - return FuzzyBoolean.NO; - } + FuzzyBoolean matchesIgnoringAnnotations = FuzzyBoolean.YES; if (kind == Member.STATIC_INITIALIZATION) { - return matchesExactlyStaticInitialization(aMember, inAWorld); + matchesIgnoringAnnotations = matchesExactlyStaticInitialization(aMember, inAWorld); } else if (kind == Member.FIELD) { - return matchesExactlyField(aMember,inAWorld); + matchesIgnoringAnnotations = matchesExactlyField(aMember,inAWorld); } else if (kind == Member.METHOD) { - return matchesExactlyMethod(aMember,inAWorld); + matchesIgnoringAnnotations = matchesExactlyMethod(aMember,inAWorld); } else if (kind == Member.CONSTRUCTOR) { - return matchesExactlyConstructor(aMember, inAWorld); + matchesIgnoringAnnotations = matchesExactlyConstructor(aMember, inAWorld); + } + if (matchesIgnoringAnnotations.alwaysFalse()) return FuzzyBoolean.NO; + + // annotations match on the *subject* + if (!matchesAnnotations(aMember,inAWorld).alwaysTrue()) { + return FuzzyBoolean.NO; } else { - return FuzzyBoolean.YES; + return matchesIgnoringAnnotations; } } -- 2.39.5