Browse Source

fixed bug related to array autogrow

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3889 50f2f4bb-b051-0410-bef5-90022cba6387
pull/1/head
Keith Donald 15 years ago
parent
commit
78643f8577
  1. 7
      org.springframework.beans/src/main/java/org/springframework/beans/BeanWrapperImpl.java
  2. 3
      org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/mvc/annotation/Spr7839Tests.java

7
org.springframework.beans/src/main/java/org/springframework/beans/BeanWrapperImpl.java

@ -848,8 +848,9 @@ public class BeanWrapperImpl extends AbstractPropertyAccessor implements BeanWra @@ -848,8 +848,9 @@ public class BeanWrapperImpl extends AbstractPropertyAccessor implements BeanWra
for (int i = length; i < Array.getLength(newArray); i++) {
Array.set(newArray, i, newValue(componentType, name));
}
// TODO this is not efficient because conversion may create a copy ... set directly because we know its assignable.
setPropertyValue(name, newArray);
return newArray;
return getPropertyValue(name);
}
else {
return array;
@ -953,10 +954,6 @@ public class BeanWrapperImpl extends AbstractPropertyAccessor implements BeanWra @@ -953,10 +954,6 @@ public class BeanWrapperImpl extends AbstractPropertyAccessor implements BeanWra
// TODO reduce this grow algorithm along side the null gap algorithm for setting lists below ... the two are inconsistent
propValue = growArrayIfNecessary(propValue, arrayIndex, actualName);
Array.set(propValue, arrayIndex, convertedValue);
PropertyValue newValue = new PropertyValue(actualName, propValue);
newValue.resolvedDescriptor = pd;
newValue.conversionNecessary = false;
setPropertyValue(newValue);
}
catch (IndexOutOfBoundsException ex) {
throw new InvalidPropertyException(getRootClass(), this.nestedPath + propertyName,

3
org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/mvc/annotation/Spr7839Tests.java

@ -8,7 +8,6 @@ import java.util.List; @@ -8,7 +8,6 @@ import java.util.List;
import java.util.Map;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.springframework.core.convert.converter.Converter;
import org.springframework.core.convert.support.ConversionServiceFactory;
@ -92,7 +91,6 @@ public class Spr7839Tests { @@ -92,7 +91,6 @@ public class Spr7839Tests {
}
@Test
@Ignore
public void arrayOfLists() throws Exception {
// TODO TypeDescriptor not capable of accessing nested element type for arrays
request.setRequestURI("/nested/arrayOfLists");
@ -101,7 +99,6 @@ public class Spr7839Tests { @@ -101,7 +99,6 @@ public class Spr7839Tests {
}
@Test
@Ignore
public void map() throws Exception {
request.setRequestURI("/nested/map");
request.addParameter("nested.map['apple'].foo", "bar");

Loading…
Cancel
Save