Fixed MacOS specific issue with process builder configuration.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/f1a04676 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/f1a04676 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/f1a04676 Branch: refs/heads/ignite-gg-10889 Commit: f1a0467670415aa28a73cbdd1053e3692255b0f6 Parents: 85ffd5a Author: Alexey Kuznetsov <akuznet...@apache.org> Authored: Thu Dec 24 10:26:51 2015 +0700 Committer: Alexey Kuznetsov <akuznet...@apache.org> Committed: Thu Dec 24 10:26:51 2015 +0700 ---------------------------------------------------------------------- .../internal/visor/util/VisorTaskUtils.java | 21 ++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/f1a04676/modules/core/src/main/java/org/apache/ignite/internal/visor/util/VisorTaskUtils.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/util/VisorTaskUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/util/VisorTaskUtils.java index 016c200..5a81039 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/visor/util/VisorTaskUtils.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/util/VisorTaskUtils.java @@ -37,6 +37,7 @@ import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.Comparator; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.SortedMap; @@ -863,7 +864,23 @@ public class VisorTaskUtils { if (U.isMacOs()) { StringBuilder envs = new StringBuilder(); - for (Map.Entry<String, String> entry : System.getenv().entrySet()) { + Map<String, String> macEnv = new HashMap<>(System.getenv()); + + if (envVars != null) { + for (Map.Entry<String, String> ent : envVars.entrySet()) + if (macEnv.containsKey(ent.getKey())) { + String old = macEnv.get(ent.getKey()); + + if (old == null || old.isEmpty()) + macEnv.put(ent.getKey(), ent.getValue()); + else + macEnv.put(ent.getKey(), old + ':' + ent.getValue()); + } + else + macEnv.put(ent.getKey(), ent.getValue()); + } + + for (Map.Entry<String, String> entry : macEnv.entrySet()) { String val = entry.getValue(); if (val.indexOf(';') < 0 && val.indexOf('\'') < 0) @@ -871,7 +888,7 @@ public class VisorTaskUtils { entry.getKey(), val.replace('\n', ' ').replace("'", "\'"))); } - run.add(openInConsole(null, envVars, envs.toString(), ignite, quitePar, nodeCfg)); + run.add(openInConsole(envs.toString(), ignite, quitePar, nodeCfg)); } else run.add(openInConsole(null, envVars, ignite, quitePar, nodeCfg)); }