mirror of
https://github.com/apache/struts.git
synced 2026-08-06 07:06:58 +00:00
Merge pull request #954 from apache/fix/WW-5423-query-params
[WW-5423] Fixes returning null instead of empty array in case of non-existing param
This commit is contained in:
+5
-2
@@ -372,8 +372,11 @@ public abstract class AbstractMultiPartRequest implements MultiPartRequest {
|
||||
* @see org.apache.struts2.dispatcher.multipart.MultiPartRequest#getParameterValues(java.lang.String)
|
||||
*/
|
||||
public String[] getParameterValues(String name) {
|
||||
return parameters.getOrDefault(name, Collections.emptyList())
|
||||
.toArray(String[]::new);
|
||||
List<String> values = parameters.get(name);
|
||||
if (values == null) {
|
||||
return null;
|
||||
}
|
||||
return values.toArray(new String[0]);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
|
||||
@@ -95,6 +95,7 @@ public interface MultiPartRequest {
|
||||
/**
|
||||
* Returns a list of all parameter values associated with a parameter name. If there is only
|
||||
* one parameter value per name the resulting array will be of length 1.
|
||||
* If the parameter doesn't exist, null should be returned instead of empty array.
|
||||
*
|
||||
* @param name the name of the parameter.
|
||||
* @return an array of all values associated with the parameter name.
|
||||
|
||||
+8
-6
@@ -93,7 +93,7 @@ abstract class AbstractMultiPartRequestTest {
|
||||
.isEmpty();
|
||||
|
||||
assertThat(multiPart.getFileParameterNames().asIterator()).toIterable()
|
||||
.asList()
|
||||
.asInstanceOf(InstanceOfAssertFactories.LIST)
|
||||
.containsOnly("file1", "file2");
|
||||
assertThat(multiPart.getFile("file1")).allSatisfy(file -> {
|
||||
assertThat(file.isFile())
|
||||
@@ -142,7 +142,7 @@ abstract class AbstractMultiPartRequestTest {
|
||||
.isEmpty();
|
||||
|
||||
assertThat(multiPart.getFileParameterNames().asIterator()).toIterable()
|
||||
.asList()
|
||||
.asInstanceOf(InstanceOfAssertFactories.LIST)
|
||||
.containsOnly("file1");
|
||||
assertThat(multiPart.getFile("file1")).allSatisfy(file -> {
|
||||
if (Objects.equals(file.getName(), "test1.csv")) {
|
||||
@@ -193,7 +193,7 @@ abstract class AbstractMultiPartRequestTest {
|
||||
.isEmpty();
|
||||
|
||||
assertThat(multiPart.getFileParameterNames().asIterator()).toIterable()
|
||||
.asList()
|
||||
.asInstanceOf(InstanceOfAssertFactories.LIST)
|
||||
.containsOnly("file1", "file2");
|
||||
assertThat(multiPart.getFile("file1")).allSatisfy(file -> {
|
||||
assertThat(file.isFile())
|
||||
@@ -240,7 +240,7 @@ abstract class AbstractMultiPartRequestTest {
|
||||
.isEmpty();
|
||||
|
||||
assertThat(multiPart.getFileParameterNames().asIterator()).toIterable()
|
||||
.asList()
|
||||
.asInstanceOf(InstanceOfAssertFactories.LIST)
|
||||
.containsOnly("file1", "file2");
|
||||
assertThat(multiPart.getFile("file1")).allSatisfy(file -> {
|
||||
assertThat(file.isFile())
|
||||
@@ -306,7 +306,7 @@ abstract class AbstractMultiPartRequestTest {
|
||||
.containsExactly("struts.messages.upload.error.FileUploadContentTypeException");
|
||||
|
||||
assertThat(multiPart.getFileParameterNames().asIterator()).toIterable()
|
||||
.asList()
|
||||
.asInstanceOf(InstanceOfAssertFactories.LIST)
|
||||
.isEmpty();
|
||||
}
|
||||
|
||||
@@ -410,7 +410,7 @@ abstract class AbstractMultiPartRequestTest {
|
||||
.isEmpty();
|
||||
|
||||
assertThat(multiPart.getFileParameterNames().asIterator()).toIterable()
|
||||
.asList()
|
||||
.asInstanceOf(InstanceOfAssertFactories.LIST)
|
||||
.containsOnly("file1");
|
||||
assertThat(multiPart.getFile("file1")).allSatisfy(file -> {
|
||||
assertThat(file.isFile())
|
||||
@@ -458,6 +458,8 @@ abstract class AbstractMultiPartRequestTest {
|
||||
.isEqualTo("short text");
|
||||
assertThat(multiPart.getParameterValues("multi"))
|
||||
.containsOnly("multi1", "multi2");
|
||||
assertThat(multiPart.getParameterValues("not-existing"))
|
||||
.isNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user