[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] Eclipse and AspectJ

If you can reliably recreate:

java.lang.RuntimeException
at org.aspectj.asm.AsmManager.verifyAssumption(AsmManager.java:1107)
at org.aspectj.asm.AsmManager.removeSingleNode(AsmManager.java:1040)

then I'd be interested in the exact steps and we can look to fix it.  But from the exception I imagine a build has to be starting at the exact time you copy/paste, so might not happen every time.

I don't have my Mac with me right now so I can't double check Eclipse 3.4.2 with 1.6 compliance behaviour - i'm sure someone else on the list can though :) Anyone?

Andy.

2009/3/3 Alejandro Garcia <garciaal@xxxxxxxxxxx>
Hello Andy,

The 1.6 compliance happens in every single aspect I had implemented including the one previously send. 
I changed everything in eclipse to make it work and also re-install eclipse a couple times just in case something was not working ok. 
I'm using a Mac OS 10.5 (Leopard).

Still if you need me to send you other codes, please let me know.

I like to show you something else I just got. I was Copy Pasting some source files from one project to another one. 
I didn't check if it is an existing bug but I wanted to take this opportunity to show it to you just in case it is important.

java.lang.RuntimeException
at org.aspectj.asm.AsmManager.verifyAssumption(AsmManager.java:1107)
at org.aspectj.asm.AsmManager.removeSingleNode(AsmManager.java:1040)
at org.aspectj.asm.AsmManager.removeRelationshipsTargettingThisType(AsmManager.java:736)
at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1120)
at org.aspectj.ajdt.internal.compiler.AjPipeliningCompilerAdapter.weaveQueuedEntries(AjPipeliningCompilerAdapter.java:435)
at ... ob.run(AutoBuildJob.java:238)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

Compile error: RuntimeException thrown: Assertion is false


By the way,  sorry about the previous one.

Alejandro


On Mar 3, 2009, at 5:35 PM, Andy Clement wrote:

On the problem with 1.6 compliance, are you able to share the code for that with me as well?

Andy.

2009/3/3 Alejandro Garcia <garciaal@xxxxxxxxxxx>
Hello Andy,

On Mar 3, 2009, at 4:39 PM, Andy Clement wrote:

Hi Alejandro,

Compliance 1.6 in Eclipse 3.4.2 should be fine.  I just created the AspectJ Bean example project (File>New>AspectJ Examples>Bean Example) and changed the compliance to 1.6 and it was ok.  What happens to you when it doesn't work - do you get an error?


I don't have any error, it runs normally but without any output in the console. I tried it once again but no luck.

> Also, I tried some examples and sometimes I've got that some advices are not being apply (raised a warning!). I checked it with an experienced
> aspect user (not in eclipse) and there is no reason not to be working (the aspect and the example class are very simple).

If compliance level is 1.5 or above, you will get warnings when advice does not match - are those the warnings you see?  To comment on why i isn't matching, I would need to see the code - are you able to post any of it here?


I see the warnings....I also attached the code... as I said is very simple and is from a book. the warning is in MinimumBalanceRuleAspect.

Thanks a lot for your help, I really appreciated.

Alejandro

public class Account {

private float balance;
private final int accountNumber;

public Account(final int accountNumber) {
this.accountNumber = accountNumber;
}

public void credit(final float credit) {
this.balance = credit + balance;
}

public void debit(final float debit) throws InsufficientBalanceException{
if(this.balance < debit) {
new InsufficientBalanceException("Not enough money in the account");
}else {
this.balance -= debit;
}
}

public void setBalance(final float balance) {
this.balance = balance;
}

public float getBalance() {
return balance;
}
}

public final class InsufficientBalanceException extends Exception {

public InsufficientBalanceException(final String mssg) {
super(mssg);
}
}

public final aspect MinimumBalanceRuleAspect {

private float Account.minimumBalance;

public float Account.getAvailableBalance() {
return getBalance() - minimumBalance;
}

after(final Account a) : execution(Account.new(..)) && this(a){
a.minimumBalance = 25;
}

//ADVICE WITH WARNING!!!!!!
before(final Account account, final float amount) throws InsufficientBalanceException : 
execution(* Account.debit()) && this(account) && args(amount){
if(account.getAvailableBalance() < amount) {
throw new InsufficientBalanceException("----- Insufficient funds -----");
}
}
}

public final class TestAccount {

public static void main(final String[] args) throws InsufficientBalanceException{
final Account account = new Account(1234);
account.credit(1000);
account.debit(500);
}
}

cheers,
Andy.


2009/3/3 Alejandro Garcia <garciaal@xxxxxxxxxxx>
Hello I'm Alejandro and also a newbie in this area.
I have the following problems: I've been trying to use Java JRE 1.6 and Compiler compliance level 1.6 in Eclipse 3.4.2  with AspectJ but it seems not to be working. If I change it to JRE 1.5 and compiler 1.5 works fine.
Is this correct? Could you point me to any place where I can find this information?

Also, I tried some examples and sometimes I've got that some advices are not being apply (raised a warning!). I checked it with an experienced aspect user (not in eclipse) and there is no reason not to be working (the aspect and the example class are very simple).
Any idea?

Thank you very much in advance for any help,

Alejandro Garcia
Email: garciaal@xxxxxxxxxxx
Website: www.atelier.inf.unisi.ch/~garciaal


_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users

<ATT00001.txt>


_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users


<ATT00001.txt>


_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users