diff --git a/src/main/java/org/sonar/plugins/clojure/sensors/CommandRunner.java b/src/main/java/org/sonar/plugins/clojure/sensors/CommandRunner.java index a77e88b..83f1f89 100644 --- a/src/main/java/org/sonar/plugins/clojure/sensors/CommandRunner.java +++ b/src/main/java/org/sonar/plugins/clojure/sensors/CommandRunner.java @@ -7,6 +7,7 @@ import org.sonar.api.utils.log.Loggers; import java.util.Arrays; +import java.util.Objects; @ScannerSide public class CommandRunner { @@ -30,7 +31,7 @@ public CommandRunner() { CommandStreamConsumer run(String command, CommandStreamConsumer stdout, CommandStreamConsumer stderr, String... arguments) { Command cmd = Command.create(command); - Arrays.stream(arguments).forEach(cmd::addArgument); + Arrays.stream(arguments).filter(Objects::nonNull).forEach(cmd::addArgument); commandExecutor.execute(cmd, stdout, stderr, TIMEOUT); diff --git a/src/test/java/org/sonar/plugins/clojure/sensors/CommandRunnerTest.java b/src/test/java/org/sonar/plugins/clojure/sensors/CommandRunnerTest.java index 70f8421..fac2b2b 100644 --- a/src/test/java/org/sonar/plugins/clojure/sensors/CommandRunnerTest.java +++ b/src/test/java/org/sonar/plugins/clojure/sensors/CommandRunnerTest.java @@ -14,7 +14,6 @@ import static org.junit.Assert.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.anyLong; -import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -37,13 +36,7 @@ public void setUp() { @Test public void shouldTakeMultipleArgumentsForCommand() { - doReturn(0).when(commandExecutor).execute( - any(), - any(), - any(), - anyLong()); - - commandRunner.run("echo", "argument1", "argument2"); + commandRunner.run("echo", "argument1", null, "argument2"); ArgumentCaptor commandCaptor = ArgumentCaptor.forClass(Command.class); verify(commandExecutor, times(1))