© Copyright 2010 Contributors. All rights reserved.

AspectJ 1.6.10 Readme

The full list of resolved issues in 1.6.10 is available here


1.6.10 is primilarily just bug fixes for AspectJ, mainly in the areas of ITDs and generic aspects. However, there are a couple of important changes that users ought to be aware of:

AJDT Memory usage

Type demotion has been in use during loadtime weaving for a while now, this enables the load time weavers to discard state and recover it at a later time (and so generally run with a smaller memory footprint). Type demotion is now supported under AJDT in Eclipse and will enable AJDT to run with smaller heaps. This feature is still experimental and needs turning ON if you want to try it out. To turn it on, open your AspectJ project properties in eclipse and in the AspectJ Compiler section, scroll down to 'Other' and in the non-standard compiler options setting, specify:


If I can get enough positive feedback about this option, it will be made the default. For a more detailed write up, check out the blog post: http://andrewclement.blogspot.com/2010/07/ajdt-memory-usage-reduction.html

Runtime changes

A big thank you to Abraham Nevado and his team who have been working on some issues to optimize loadtime weaving and the code generated by AspectJ. 1.6.10 includes some new changes to the aspectjrt.jar. The changes are new methods that enable the woven code to be a little shorter/neater. As we want to continue to have compatibility with older aspectjrt.jar a user needs to choose to activate these optimizations by specifying the option: -Xset:targetRuntime1_6_10=true. With that option on you will need to ensure you run against the aspectjrt.jar from a 1.6.10 build.

The changes are discussed in bug 323438