diff --git a/core/src/main/java/hudson/util/ProcessTree.java b/core/src/main/java/hudson/util/ProcessTree.java index 392e73cf9b898646e95d3f56aa09ec74d9ae6c45..df5946c2d606fac9a198d6bc57c971e32543f648 100644 --- a/core/src/main/java/hudson/util/ProcessTree.java +++ b/core/src/main/java/hudson/util/ProcessTree.java @@ -67,6 +67,7 @@ import java.util.logging.Logger; import static com.sun.jna.Pointer.NULL; import static hudson.util.jna.GNUCLibrary.LIBC; +import static java.util.logging.Level.FINE; import static java.util.logging.Level.FINER; import static java.util.logging.Level.FINEST; @@ -424,7 +425,17 @@ public abstract class ProcessTree implements Iterable, IProcessTree, @Override public synchronized EnvVars getEnvironmentVariables() { - if(env==null) env = new EnvVars(p.getEnvironmentVariables()); + if(env !=null) + return env; + env = new EnvVars(); + + try + { + env.putAll(p.getEnvironmentVariables()); + } catch (WinpException e) + { + LOGGER.log(FINE, "Failed to get environment variable ", e); + } return env; } });