Bug 404848 - You should resolve this member and call getAnnotationOfType() on the result...
Summary: You should resolve this member and call getAnnotationOfType() on the result...
Status: RESOLVED FIXED
Alias: None
Product: AspectJ
Classification: Tools
Component: Compiler (show other bugs)
Version: DEVELOPMENT   Edit
Hardware: PC Mac OS X
: P3 normal (vote)
Target Milestone: 1.7.3   Edit
Assignee: aspectj inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-04-03 15:32 EDT by Andrew Clement CLA
Modified: 2013-04-03 15:59 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andrew Clement CLA 2013-04-03 15:32:07 EDT
reported on skype:
You should resolve this member and call getAnnotationOfType() on the result...
java.lang.UnsupportedOperationException: You should resolve this member and call getAnnotationOfType() on the result...
    at org.aspectj.weaver.ResolvedMemberImpl.getAnnotationOfType(ResolvedMemberImpl.java:1239)
    at org.aspectj.weaver.JoinPointSignature.getAnnotationOfType(JoinPointSignature.java:87)
    at org.aspectj.weaver.patterns.ExactAnnotationTypePattern.matches(ExactAnnotationTypePattern.java:124)
    at org.aspectj.weaver.patterns.ExactAnnotationTypePattern.matches(ExactAnnotationTypePattern.java:96)
    at org.aspectj.weaver.patterns.SignaturePattern.matchesAnnotations(SignaturePattern.java:713)
    at org.aspectj.weaver.patterns.SignaturePattern.matchesExactly(SignaturePattern.java:372)
    at org.aspectj.weaver.patterns.SignaturePattern.matches(SignaturePattern.java:320)
    at org.aspectj.weaver.patterns.KindedPointcut.matchInternal(KindedPointcut.java:202)
    at org.aspectj.weaver.patterns.Pointcut.match(Pointcut.java:137)
    at org.aspectj.weaver.patterns.AndPointcut.matchInternal(AndPointcut.java:55)
    at org.aspectj.weaver.patterns.Pointcut.match(Pointcut.java:137)
    at org.aspectj.weaver.patterns.AndPointcut.matchInternal(AndPointcut.java:51)
    at org.aspectj.weaver.patterns.Pointcut.match(Pointcut.java:137)
    at org.aspectj.weaver.patterns.OrPointcut.matchInternal(OrPointcut.java:54)
    at org.aspectj.weaver.patterns.Pointcut.match(Pointcut.java:137)
    at org.aspectj.weaver.ShadowMunger.match(ShadowMunger.java:113)
    at org.aspectj.weaver.Checker.match(Checker.java:86)
    at org.aspectj.weaver.bcel.BcelClassWeaver.match(BcelClassWeaver.java:3156)
    at org.aspectj.weaver.bcel.BcelClassWeaver.matchInvokeInstruction(BcelClassWeaver.java:3080)
    at org.aspectj.weaver.bcel.BcelClassWeaver.match(BcelClassWeaver.java:2762)
    at org.aspectj.weaver.bcel.BcelClassWeaver.match(BcelClassWeaver.java:2542)
Comment 1 Andrew Clement CLA 2013-04-03 15:59:13 EDT
Fixed up.

The problem here is that we often get away with just passing annotation types around - it isn't often that users match on annotation values. Here annotation values were being used to match against the fake member created to represent an ITD, the fake member only had the annotation types put on it. I fleshed it out to also copy the values.