[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[ajdt-dev] Signature-matching bug in inter-method declarations?
|
Hey All!
Running the test program below, I get the following error:
java.lang.AbstractMethodError:
trouble.Trouble$A.ajc$interMethodDispatch2$trouble$getName()Ljava/lang/String;
at
trouble.Trouble$Bang.ajc$interMethodDispatch1$trouble_Trouble$Bang$trouble_Trouble$A$getName(Trouble.java)
at
trouble.Trouble$Bang.ajc$interMethod$trouble_Trouble$Bang$trouble_Trouble$A$toString(Trouble.java:40)
at trouble.Trouble$A.toString(Trouble.java)
at java.lang.String.valueOf(String.java:2131)
at java.io.PrintStream.print(PrintStream.java:462)
at java.io.PrintStream.println(PrintStream.java:599)
at trouble.Trouble.main(Trouble.java:34)
Exception in thread "main"
public class Trouble {
static abstract class A {}
static class B extends A {}
public static void main(String[] args) {
System.out.println(new B());
}
static aspect Bang {
abstract String A.getName();
public String B.getName() { return "B"; }
public String A.toString() { return getName(); }
}
}
The crux is in my declaration of A.getName() as package access and
B.getName() as public. If they both have identical access modifiers the
program runs fine...
Version Info:
Version: 1.1.12
Build id: 20040813151120
AspectJ version: 1.2.0
and:
j2sdk1.4.2_02
Am I missing something obvious or should I submit it to bugzilla?
Thanks,
-phil