Community
Participate
Working Groups
Build ID: M20060921-0945 Tested in Eclipse (3.2.1 M20060921-0945) using AJDT 1.4.1.200611230655 (AspectJ 1.5.3.200611221118). The enclosed source code fails to compile with the message on ExtendedBaseClass: must implement abstract inter-type declaration: void test.BaseClass.setSomething(java.util.Set<java.lang.String>) Any of the following fixes it: - Declaring BaseClass.setSomething as non-abstract and providing empty body (in Aspect file). - Changing parameter from Set<String> to just Set. More information: Source code: public abstract class BaseClass { // Empty. } public aspect BaseClassAspect { public abstract void BaseClass.setSomething(Set<String> somethings); } public class ExtendedBaseClass extends BaseClass { @Override public void setSomething(Set<String> somethings) { // Doh. } }
Possibly relevant information about JDKs. Eclipse is launched using Sun JDK 1.6 Java(TM) SE Runtime Environment (build 1.6.0-b105) However default JRE within Eclipse (and used for AspectJ compilation) is Sun JDK 1.5 Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_10-b03) Compiler compliance level set to 5.0.
tests and fix committed - thanks for the clear bug report.
fix available in latest dev build