Stephanie Swiderski created FLEX-34225:
------------------------------------------

             Summary: Configurations dependent on loading order of methods
                 Key: FLEX-34225
                 URL: https://issues.apache.org/jira/browse/FLEX-34225
             Project: Apache Flex
          Issue Type: Bug
          Components: FlexJS
    Affects Versions: Apache FlexJS 1.0
         Environment: Windows 7, 32 Bit, FDT/Eclipse
            Reporter: Stephanie Swiderski
            Priority: Critical


Location: 
org.apache.flex.compiler.config.ConfigurationBuffer, method loadCache, line 
553; top for-loop

Problem: 
Using method cfg.getMethods() is not as safe as it appears. The field varList 
is filled with all available configuration options. The evaluation of the 
options is order dependent to field varList (especially for the option 
"target-player" ). The order of methods returned by cgf.getMethods() is JVM, 
Classloader, and memory dependent. Sometimes the order is loaded differently as 
expected and the "target-player" option is evaluated after SDK-swcs are 
collected for the compilation which results in incorrect compiler 
initialisation, incorrect error reports, and failing compilations.

About Method getMethods:
http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#getMethods%28%29
The relevant part: 
".... The elements in the array returned are not sorted and are not in any 
particular order..... "

This problem is serious if the compiler should be embedded into an IDE like 
FDT. The Classloaders in Eclipse behaves slightly different to the default 
Classloaders. 

The same problem occured with the latest Adobe Flex SDK Action Script Compiler 
2.0. Since Adobe's cycle of development is very slow we decided to solve this 
problem within FDT by simply sorting the varList field according to a working 
default order.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to