Summary: | @args causes a VerifyError: Unable to pop operand off an empty stack | ||||||
---|---|---|---|---|---|---|---|
Product: | [Tools] AspectJ | Reporter: | Michal Stochmialek <misto> | ||||
Component: | Compiler | Assignee: | Adrian Colyer <adrian.colyer> | ||||
Status: | RESOLVED FIXED | QA Contact: | |||||
Severity: | normal | ||||||
Priority: | P3 | ||||||
Version: | 1.5.0M2 | ||||||
Target Milestone: | 1.5.0 M3 | ||||||
Hardware: | PC | ||||||
OS: | Linux | ||||||
Whiteboard: | |||||||
Attachments: |
|
Description
Michal Stochmialek
2005-04-20 07:19:59 EDT
Created attachment 20114 [details]
Test3.java
I'm currently looking into this one ... Fixed - the bug is due to an 'optimization' in ArgsAnnotationPointcut. Normally all annotation binding consists of two generated bits of code: 1. a 'hasAnnotation()' call to check if the element has the annotation 2. a 'getAnnotation()' call to retrieve the annotation of the element Obviously there are some cases where we can statically determine that an element will always have the annotation at runtime, so we could skip generating part (1) and just generate the retrieval code. Unfortunately we were being a bit too clever and skipped generating both bits of code in this case. I've fixed it so that we only skip the test now and always generate the retrieval code. The exception that occurred indicated that when the advice ran the annotation wasn't on the stack to be passed as a parameter... Fix checked in, waiting on build before closing. Fix available, see AspectJ downloads: BUILD COMPLETE - build.470 Date of build: 04/20/2005 16:29:28 Time to build: 142 minutes 34 seconds Last changed: 04/20/2005 15:58:14 |