Community
Participate
Working Groups
The following case produces a runtime error: package aj; public abstract aspect GenericInheritedMethod<T> { protected final T getSomething() { return null; } } package aj; aspect UseInheritedMethod extends GenericInheritedMethod<Integer> { // works as expected before() : execution(void someMethod()) { System.out.println(getSomething()); } // Runtime Error void around() : execution(void someMethod()) { System.out.println(getSomething()); } public static void main(String[] args) { someMethod(); } private static void someMethod() { } } >java aj.UseInheritedMethod null Exception in thread "main" java.lang.NoSuchMethodError: aj.UseInheritedMethod.getSomething()Ljava/lang/Integer; at aj.UseInheritedMethod.ajc$inlineAccessMethod$aj_UseInheritedMethod$aj_UseInheritedMethod$getSomething(UseInheritedMethod.aj) at aj.UseInheritedMethod.ajc$around$aj_UseInheritedMethod$2$c74e36b7(UseInheritedMethod.aj:12) at aj.UseInheritedMethod.someMethod(UseInheritedMethod.aj:1) at aj.UseInheritedMethod.main(UseInheritedMethod.aj:16) The "inlineAccessMethod" should call "getSomething()Ljava/lang/Object;" as the before advice does.
fix for this is checked in and available in the latest dev build.
fixed.