Hi,
We have aspectj code using a really old version of the Aspectj compiler. This works fine with it, but we want to upgrade to the latest compiler. When I try to do that, I'm getting a compiler error as follows:

/home/rstone/workspace3/Adbase/src/main/java/com/vms/adbase/presentation/performance/SearchTimer.java:[23,8] cannot find symbol
symbol  : method setTimeout(int)
location: class com.vms.adbase.presentation.performance.SearchTimer

Sorry if this seems like a basic question, but we created a bunch of aspects years ago and have not upgraded our compiler. Now we need to and we have several examples like this, where we are adding methods to an interface, that are just not compiling with the new compiler.

Any ideas on how to fix this?

Thanks,
Rene


Aspect HasTimeoutImple.aj:

package com.vms.adbase.presentation.performance;

public aspect HasTimeoutImpl {
    private int HasTimeout.timeout = 0;
    public int HasTimeout.getTimeout(){
        return timeout;
    }
    public void HasTimeout.setTimeout(int newTimeout){
        timeout = newTimeout;
    }
}

Interface HasTimeout.java:
package com.vms.adbase.presentation.performance;

public interface HasTimeout {}


Aspect to add methods to SearchTimer:

package com.vms.adbase.presentation.performance;

import com.vms.adbase.util.sql.SQLUtil;

public aspect TimeoutPropagation{
    declare parents : SearchTimer implements HasTimeout;

    pointcut sqlUtilConstructions():
        call(SQLUtil+.new(..));

    pointcut timerMethods(HasTimeout timer) :
        execution(* HasTimeout+.*(..)) &&
        this(timer);

    pointcut sqlUtilConstructionsFromTimer(HasTimeout timer) :
        sqlUtilConstructions() && cflow(timerMethods(timer));

    after(HasTimeout timer) returning(SQLUtil newSQLUtil) :
        sqlUtilConstructionsFromTimer(timer){

        newSQLUtil.setTimeout(timer.getTimeout());
    }
}

_______________________________________________
aspectj-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/aspectj-users

Reply via email to