Mercurial > hg > mercurial
changeset 577:a9fea2d1d6c8
Do not include command output in exception message, it could be huge
author | Dmitry Neverov <dmitry.neverov@jetbrains.com> |
---|---|
date | Wed, 27 Mar 2013 19:06:51 +0400 |
parents | 0dfa9ed1039a |
children | 40c085517770 |
files | mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandResult.java mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandResultTest.java |
diffstat | 2 files changed, 15 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandResult.java Wed Mar 27 13:46:14 2013 +0400 +++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandResult.java Wed Mar 27 19:06:51 2013 +0400 @@ -146,13 +146,7 @@ } private String createCommandLogMessage() { - String stderr = getStderr(); - String stdout = getStdout(); - String exceptionMessage = getExceptionMessage(); - return "'" + getCommand() + "' command failed.\n" + - (!StringUtil.isEmpty(stdout) ? "stdout: " + stdout + "\n" : "") + - (!StringUtil.isEmpty(stderr) ? "stderr: " + stderr + "\n" : "") + - (exceptionMessage != null ? "exception: " + exceptionMessage : ""); + return "'" + getCommand() + "' command failed."; } @Nullable
--- a/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandResultTest.java Wed Mar 27 13:46:14 2013 +0400 +++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandResultTest.java Wed Mar 27 19:06:51 2013 +0400 @@ -19,6 +19,9 @@ import java.util.HashSet; import java.util.List; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.not; import static org.testng.AssertJUnit.*; /** @@ -86,6 +89,17 @@ commandResult.checkCommandFailed(); } + public void exception_should_not_contain_command_stdout_or_stderr() { + final String stdout = "300Mb of output"; + final String stderr = "300Mb from stderr"; + CommandResult cr = commandResultFor(execResult().withStdout(stdout).withStderr(stderr)); + try { + cr.checkCommandFailed(); + } catch (VcsException e) { + assertThat(e.getMessage(), not(containsString(stdout))); + assertThat(e.getMessage(), not(containsString(stderr))); + } + } ExecResultBuilder execResult() { return new ExecResultBuilder();