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)