Updated Branches: refs/heads/develop 8966eda94 -> b5a06269f
guarantee that target-player gets processed before library-path otherwise wrong player gets checked Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/b5a06269 Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/b5a06269 Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/b5a06269 Branch: refs/heads/develop Commit: b5a06269f51aa1843cc6da79dd3a6eb0f4848345 Parents: 8966eda Author: Alex Harui <aha...@apache.org> Authored: Wed Jan 22 16:42:40 2014 +0000 Committer: Alex Harui <aha...@apache.org> Committed: Wed Jan 22 16:42:40 2014 +0000 ---------------------------------------------------------------------- .../compiler/config/ConfigurationBuffer.java | 23 ++++++++++++++++++++ 1 file changed, 23 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/b5a06269/compiler/src/org/apache/flex/compiler/config/ConfigurationBuffer.java ---------------------------------------------------------------------- diff --git a/compiler/src/org/apache/flex/compiler/config/ConfigurationBuffer.java b/compiler/src/org/apache/flex/compiler/config/ConfigurationBuffer.java index b6484fd..f76bf17 100644 --- a/compiler/src/org/apache/flex/compiler/config/ConfigurationBuffer.java +++ b/compiler/src/org/apache/flex/compiler/config/ConfigurationBuffer.java @@ -102,6 +102,8 @@ import com.google.common.collect.ImmutableList; */ public final class ConfigurationBuffer { + private static final String TARGET_PLAYER = "target-player"; + public ConfigurationBuffer(Class<? extends Configuration> configClass) { this(configClass, new HashMap<String, String>()); @@ -714,6 +716,27 @@ public final class ConfigurationBuffer Set<String> done = new HashSet<String>(); boolean success = true; + // get target-player first because its setting affect expansion of some + // tokens later. The varList is populated by getMethods() which returns + // the methods in random order and can result in compiler.library-path being + // evaluated before target-player and then we end up looking up the wrong + // version of playerglobal. + if (varList.contains(TARGET_PLAYER)) + { + varList.remove(TARGET_PLAYER); + if (varMap.containsKey(TARGET_PLAYER)) + { + try + { + commitVariable(config, TARGET_PLAYER, done); + } + catch (ConfigurationException e) + { + problems.add(new ConfigurationProblem(e)); + success = false; + } + } + } for (Iterator<String> vars = varList.iterator(); vars.hasNext();) { String var = vars.next();