Skip to content

Commit 0867ac5

Browse files
bjornlindstromsnicoll
authored andcommitted
Fix handling of empty/null arguments
See gh-9916
1 parent 0e46d0f commit 0867ac5

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/RunArguments.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121

2222
import org.codehaus.plexus.util.cli.CommandLineUtils;
2323

24+
import org.springframework.util.StringUtils;
25+
2426
/**
2527
* Parse and expose arguments specified in a single string.
2628
*
@@ -31,14 +33,16 @@ class RunArguments {
3133

3234
private static final String[] NO_ARGS = {};
3335

34-
private final LinkedList<String> args;
36+
private final LinkedList<String> args = new LinkedList<>();
3537

3638
RunArguments(String arguments) {
3739
this(parseArgs(arguments));
3840
}
3941

4042
RunArguments(String[] args) {
41-
this.args = new LinkedList<>(Arrays.asList(args));
43+
if (args != null) {
44+
Arrays.stream(args).filter(StringUtils::hasLength).forEach(this.args::add);
45+
}
4246
}
4347

4448
public LinkedList<String> getArgs() {

spring-boot-tools/spring-boot-maven-plugin/src/test/java/org/springframework/boot/maven/RunArgumentsTests.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,20 @@ public void parseNull() {
3434
assertThat(args.length).isEqualTo(0);
3535
}
3636

37+
@Test
38+
public void parseNullArray() {
39+
String[] args = new RunArguments((String[]) null).asArray();
40+
assertThat(args).isNotNull();
41+
assertThat(args.length).isEqualTo(0);
42+
}
43+
44+
@Test
45+
public void parseArrayContainingNullValue() {
46+
String[] args = new RunArguments(new String[]{null}).asArray();
47+
assertThat(args).isNotNull();
48+
assertThat(args.length).isEqualTo(0);
49+
}
50+
3751
@Test
3852
public void parseEmpty() {
3953
String[] args = parseArgs(" ");

0 commit comments

Comments
 (0)