From 3898482d3f494e9bf75e40fc5ae902461c20edb5 Mon Sep 17 00:00:00 2001 From: rstoyanchev Date: Tue, 4 Feb 2025 19:08:52 +0000 Subject: [PATCH] Revert commit 0f38c28e9155e0190cf3ffb5478aca3e9282b6e7 The fix is not how the issue needs to be addressed. See gh-34121 --- ...vletRequestDataBinderIntegrationTests.java | 3 +++ .../web/bind/ServletRequestDataBinder.java | 4 --- .../bind/ServletRequestDataBinderTests.java | 26 ------------------- 3 files changed, 3 insertions(+), 30 deletions(-) diff --git a/spring-test/src/test/java/org/springframework/test/web/servlet/samples/spr/ServletRequestDataBinderIntegrationTests.java b/spring-test/src/test/java/org/springframework/test/web/servlet/samples/spr/ServletRequestDataBinderIntegrationTests.java index 64d7d5f434..1750d4a895 100644 --- a/spring-test/src/test/java/org/springframework/test/web/servlet/samples/spr/ServletRequestDataBinderIntegrationTests.java +++ b/spring-test/src/test/java/org/springframework/test/web/servlet/samples/spr/ServletRequestDataBinderIntegrationTests.java @@ -19,6 +19,7 @@ package org.springframework.test.web.servlet.samples.spr; import java.util.List; import java.util.Map; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.springframework.test.context.junit.jupiter.web.SpringJUnitWebConfig; @@ -56,6 +57,7 @@ class ServletRequestDataBinderIntegrationTests { .andExpect(content().string("valueB")); } + @Disabled("see gh-34121") @Test // gh-34121 void postArrayWithEmptyIndex(WebApplicationContext wac) throws Exception { MockMvc mockMvc = webAppContextSetup(wac).build(); @@ -86,6 +88,7 @@ class ServletRequestDataBinderIntegrationTests { .andExpect(content().string("valueB")); } + @Disabled("see gh-34121") @Test // gh-34121 void postListWithEmptyIndex(WebApplicationContext wac) throws Exception { MockMvc mockMvc = webAppContextSetup(wac).build(); diff --git a/spring-web/src/main/java/org/springframework/web/bind/ServletRequestDataBinder.java b/spring-web/src/main/java/org/springframework/web/bind/ServletRequestDataBinder.java index 95ff7db1a3..07ae355566 100644 --- a/spring-web/src/main/java/org/springframework/web/bind/ServletRequestDataBinder.java +++ b/spring-web/src/main/java/org/springframework/web/bind/ServletRequestDataBinder.java @@ -244,10 +244,6 @@ public class ServletRequestDataBinder extends WebDataBinder { @Nullable protected Object getRequestParameter(String name, Class type) { Object value = this.request.getParameterValues(name); - if (value == null && !name.endsWith("[]") && - (List.class.isAssignableFrom(type) || type.isArray())) { - value = this.request.getParameterValues(name + "[]"); - } return (ObjectUtils.isArray(value) && Array.getLength(value) == 1 ? Array.get(value, 0) : value); } diff --git a/spring-web/src/test/java/org/springframework/web/bind/ServletRequestDataBinderTests.java b/spring-web/src/test/java/org/springframework/web/bind/ServletRequestDataBinderTests.java index fa10f23a04..adbae1ddc6 100644 --- a/spring-web/src/test/java/org/springframework/web/bind/ServletRequestDataBinderTests.java +++ b/spring-web/src/test/java/org/springframework/web/bind/ServletRequestDataBinderTests.java @@ -93,32 +93,6 @@ class ServletRequestDataBinderTests { assertThat(target.isPostProcessed()).isFalse(); } - @Test - public void testFieldWithArrayIndex() { - TestBean target = new TestBean(); - ServletRequestDataBinder binder = new ServletRequestDataBinder(target); - binder.setIgnoreUnknownFields(false); - - MockHttpServletRequest request = new MockHttpServletRequest(); - request.addParameter("stringArray[0]", "ONE"); - request.addParameter("stringArray[1]", "TWO"); - binder.bind(request); - assertThat(target.getStringArray()).containsExactly("ONE", "TWO"); - } - - @Test - public void testFieldWithEmptyArrayIndex() { - TestBean target = new TestBean(); - ServletRequestDataBinder binder = new ServletRequestDataBinder(target); - binder.setIgnoreUnknownFields(false); - - MockHttpServletRequest request = new MockHttpServletRequest(); - request.addParameter("stringArray[]", "ONE"); - request.addParameter("stringArray[]", "TWO"); - binder.bind(request); - assertThat(target.getStringArray()).containsExactly("ONE", "TWO"); - } - @Test void testFieldDefault() { TestBean target = new TestBean();