Community
Participate
Working Groups
If you have an if-clause with a large body and then you put a very large number of pieces of advice on the code within this body you can exceed the maximum size of an if branch (32768 bytes). This will show up only slightly before a general limitation on the code size of a method (65536 bytes). This is a knownLimitation of the 1.1 compiler with a test case in bugs/WideJumps.java. The severity of this bug can be reduced by improving the code generation for advice to optimize better for code size. This optimization work is strongly recommended for the 1.2 weaver. The ultimate theoretical solution is to detect these cases at code generation time and split single methods into multiple methods. It's unclear that this optimization would be worth the effort involved as any time a method is approaching these limits it probably indicates something is wrong with the advice that is being applied. In general, the right solution to this bug is to examine and improve the efficiency of the aspects in your system, i.e. by changing call pcds to execution pcds when that can be done without compromising functionality. This bug report is based on a bug submitted privately by Rich Price.
defered to post 1.2.
Resolving bug as dup, 70201 has a nice juicy stack trace and example of this to look at. *** This bug has been marked as a duplicate of 70201 ***
Fix released as part of AspectJ 1.2.1