View | Details | Raw Unified | Return to bug 122742 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/aspectj/weaver/Advice.java (+14 lines)
Lines 285-290 Link Here
285
	public UnresolvedType getExtraParameterType() {
285
	public UnresolvedType getExtraParameterType() {
286
		if (!hasExtraParameter()) return ResolvedType.MISSING;
286
		if (!hasExtraParameter()) return ResolvedType.MISSING;
287
		if (signature instanceof ResolvedMember) {
287
		if (signature instanceof ResolvedMember) {
288
			if (getConcreteAspect().isAnnotationStyleAspect()) {
289
				// bug 122742 - if we're an annotation style aspect then one 
290
				// of the extra parameters could be JoinPoint which we want
291
				// to ignore
292
				int baseParmCnt = getBaseParameterCount();
293
				UnresolvedType[] genericParameterTypes = ((ResolvedMember)signature).getGenericParameterTypes();
294
				while ((baseParmCnt + 1 < genericParameterTypes.length)
295
						&& (genericParameterTypes[baseParmCnt].equals(AjcMemberMaker.TYPEX_JOINPOINT)
296
								|| genericParameterTypes[baseParmCnt].equals(AjcMemberMaker.TYPEX_STATICJOINPOINT)
297
								|| genericParameterTypes[baseParmCnt].equals(AjcMemberMaker.TYPEX_ENCLOSINGSTATICJOINPOINT))) {
298
					baseParmCnt++;
299
				}
300
				return ((ResolvedMember)signature).getGenericParameterTypes()[baseParmCnt];
301
			}
288
			return ((ResolvedMember)signature).getGenericParameterTypes()[getBaseParameterCount()];
302
			return ((ResolvedMember)signature).getGenericParameterTypes()[getBaseParameterCount()];
289
		} else {
303
		} else {
290
			return signature.getParameterTypes()[getBaseParameterCount()];
304
			return signature.getParameterTypes()[getBaseParameterCount()];

Return to bug 122742