Skip to content

Commit

Permalink
Fixing thread contention issues
Browse files Browse the repository at this point in the history
  • Loading branch information
jrichard committed Mar 19, 2018
1 parent 80a5c54 commit f647eed
Showing 1 changed file with 15 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.SystemUtils;
import org.jenkinsci.remoting.Role;
Expand Down Expand Up @@ -145,22 +146,28 @@ public String call() throws IntegrationException {
setProcessEnvironmentVariableString(processBuilder, "BLACKDUCK_HUB_AUTO_IMPORT_CERT", String.valueOf(trustSSLCertificates));
setProcessEnvironmentVariableString(processBuilder, "BLACKDUCK_HUB_TRUST_CERT", String.valueOf(trustSSLCertificates));

setProcessEnvironmentVariableString(processBuilder, "BLACKDUCK_HUB_PROXY_HOST", proxyHost);
if (StringUtils.isNotBlank(proxyHost)) {
setProcessEnvironmentVariableString(processBuilder, "BLACKDUCK_HUB_PROXY_HOST", proxyHost);
}
setProcessEnvironmentVariableString(processBuilder, "BLACKDUCK_HUB_PROXY_PORT", String.valueOf(proxyPort));
setProcessEnvironmentVariableString(processBuilder, "BLACKDUCK_HUB_PROXY_USERNAME", proxyUsername);
setProcessEnvironmentVariableString(processBuilder, "BLACKDUCK_HUB_PROXY_PASSWORD", proxyPassword);
setProcessEnvironmentVariableString(processBuilder, "BLACKDUCK_HUB_PROXY_NTLM_DOMAIN", proxyNtlmDomain);
if (StringUtils.isNotBlank(proxyUsername)) {
setProcessEnvironmentVariableString(processBuilder, "BLACKDUCK_HUB_PROXY_USERNAME", proxyUsername);
}
if (StringUtils.isNotBlank(proxyPassword)) {
setProcessEnvironmentVariableString(processBuilder, "BLACKDUCK_HUB_PROXY_PASSWORD", proxyPassword);
}
if (StringUtils.isNotBlank(proxyNtlmDomain)) {
setProcessEnvironmentVariableString(processBuilder, "BLACKDUCK_HUB_PROXY_NTLM_DOMAIN", proxyNtlmDomain);
}

final Process process = processBuilder.start();

final StreamRedirectThread redirectStdOutThread = new StreamRedirectThread(process.getInputStream(), logger.getJenkinsListener().getLogger());
redirectStdOutThread.start();

final StreamRedirectThread redirectErrOutThread = new StreamRedirectThread(process.getErrorStream(), logger.getJenkinsListener().getLogger());
redirectErrOutThread.start();

final int exitCode = process.waitFor();
redirectStdOutThread.join(0);

IOUtils.copy(process.getErrorStream(), logger.getJenkinsListener().getLogger());
if (exitCode != 0) {
throw new HubIntegrationException("Hub Detect failed with exit code : " + exitCode);
}
Expand Down

0 comments on commit f647eed

Please sign in to comment.