Browse Source

SPR-7047 - XML MarshallingView assumes non-null value for object to be marshalled.

pull/23217/head
Arjen Poutsma 15 years ago
parent
commit
9cecaa769e
  1. 2
      org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/view/xml/MarshallingView.java
  2. 21
      org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/view/xml/MarshallingViewTests.java

2
org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/view/xml/MarshallingView.java

@ -132,7 +132,7 @@ public class MarshallingView extends AbstractView { @@ -132,7 +132,7 @@ public class MarshallingView extends AbstractView {
return o;
}
for (Object o : model.values()) {
if (this.marshaller.supports(o.getClass())) {
if (o != null && this.marshaller.supports(o.getClass())) {
return o;
}
}

21
org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/view/xml/MarshallingViewTests.java

@ -94,6 +94,27 @@ public class MarshallingViewTests { @@ -94,6 +94,27 @@ public class MarshallingViewTests {
verify(marshallerMock);
}
@Test
public void renderNullModelValue() throws Exception {
String modelKey = "key";
Map model = new HashMap();
model.put(modelKey, null);
MockHttpServletRequest request = new MockHttpServletRequest();
MockHttpServletResponse response = new MockHttpServletResponse();
replay(marshallerMock);
try {
view.render(model, request, response);
fail("ServletException expected");
}
catch (ServletException ex) {
// expected
}
assertEquals("Invalid content length", 0, response.getContentLength());
verify(marshallerMock);
}
@Test
public void renderModelKeyUnsupported() throws Exception {
Object toBeMarshalled = new Object();

Loading…
Cancel
Save