Skip to content

Commit 3da9406

Browse files
committed
Merge pull request #9916 from bjornlindstrom:gh-9713
* pr/9916: Polish "Fix handling of empty/null arguments" Fix handling of empty/null arguments
2 parents 0e46d0f + 8351042 commit 3da9406

File tree

2 files changed

+27
-3
lines changed

2 files changed

+27
-3
lines changed

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

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import java.util.Arrays;
2020
import java.util.LinkedList;
21+
import java.util.Objects;
2122

2223
import org.codehaus.plexus.util.cli.CommandLineUtils;
2324

@@ -31,14 +32,16 @@ class RunArguments {
3132

3233
private static final String[] NO_ARGS = {};
3334

34-
private final LinkedList<String> args;
35+
private final LinkedList<String> args = new LinkedList<>();
3536

3637
RunArguments(String arguments) {
3738
this(parseArgs(arguments));
3839
}
3940

4041
RunArguments(String[] args) {
41-
this.args = new LinkedList<>(Arrays.asList(args));
42+
if (args != null) {
43+
Arrays.stream(args).filter(Objects::nonNull).forEach(this.args::add);
44+
}
4245
}
4346

4447
public LinkedList<String> getArgs() {

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

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2016 the original author or authors.
2+
* Copyright 2012-2017 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -34,6 +34,27 @@ 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[]{"foo", null, "bar"}).asArray();
47+
assertThat(args).isNotNull();
48+
assertThat(args).containsOnly("foo", "bar");
49+
}
50+
51+
@Test
52+
public void parseArrayContainingEmptyValue() {
53+
String[] args = new RunArguments(new String[]{"foo", "", "bar"}).asArray();
54+
assertThat(args).isNotNull();
55+
assertThat(args).containsOnly("foo", "", "bar");
56+
}
57+
3758
@Test
3859
public void parseEmpty() {
3960
String[] args = parseArgs(" ");

0 commit comments

Comments
 (0)