Summary: | weaving is sensitive to order of input files | ||
---|---|---|---|
Product: | [Tools] AspectJ | Reporter: | Vincenz Braun <vb> |
Component: | Compiler | Assignee: | aspectj inbox <aspectj-inbox> |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | blocker | ||
Priority: | P1 | CC: | aclement |
Version: | DEVELOPMENT | ||
Target Milestone: | 1.6.0 RC1 | ||
Hardware: | PC | ||
OS: | Mac OS X - Carbon (unsup.) | ||
Whiteboard: |
Description
Vincenz Braun
2008-04-06 20:28:21 EDT
As with the previous occurence of this same issue, it is the pipeline compilation introduced in 1.5.3 that causes it. A simple workaround is to switch off pipeline compilation (whilst i work on a fix): ajc -showWeaveInfo "-Xset:pipelineCompilation=false" Test.java TestMBean.java TestAspect.java produces the output as expected. fixed in latest dev build. The problem is during pipeline processing some types are still in their eclipse representation (have not yet been transformed to their bcel form) in this case one of the methods on the eclipse representation (isAnonymous()) was incorrect. Thank you very much! Can you be so kind and point me to the original bug report that deals with the "previous occurence of this same issue"? I only found 171953, which is fixed. sorry, I did a quick search and can't find it. But I just remember we have had a problem before with order of files being important and it being due to the pipeline compiler feature. Could you please be so kind and give me some details about how much these two compiler methods differ? Does the aspectj test suite run against both compiler settings? What compilation method uses ajdt in eclipse? Can bug 226567 and 227540 also be targeted for 1.6.0? Or does it even make sense to have pipelineCompilation=false as default? I would suggest to make it at least a standard X switch that shows up in ajc -X. > Could you please be so kind and give me some details about how much > these two compiler methods differ? There are two classes we choose between for sorting/ordering compilation and weaving. A pipeline one and a non-pipeline one. > Does the aspectj test suite run against both compiler settings? Our build machine does not run the test suite against non-pipeline compilation as it is deprecated, only left in as a temporary workaround for users that hit issues that turn out to be pipelining. I haven't manually tried running it against non-pipeline compilation for a long time. > What compilation method uses ajdt in eclipse? AJDT uses pipeline compilation, otherwise there are terrible memory problems, as used to get reported pre 1.5.3 > Can bug 226567 and 227540 also be targeted for 1.6.0? > Or does it even make sense to have pipelineCompilation=false as default? > I would suggest to make it at least a standard X switch that shows up in ajc -X. 227540 may make 1.6.0 if it can be addressed in the next two days. 226567 will not - if it were a regression, I might, but it did not work in 1.5 either. 1.6.1 development will start straight after 1.6.0 ships so I don't see a need to hold it up. I would rather not make non-pipeline compilation easier to use as it is not meant to be the way to run things. non-pipeline compilation has a terrible memory usage profile which is what led to creation of pipeline compilation. As I say, it is only in as a temporary fix I offer people whilst their pipeline issues are addressed. |