Browse Source

Close InputStream in ResourceHttpMessageConverter

Spring 3.2.2 introduced a change to avoid closing the response stream
in HttpMessageConverters (SPR-10095). However, the InputStream of
resources being written, for example as part of a multi-part request
should be closed. This change ensures that.

Issue: SPR-10460
pull/283/merge
Rossen Stoyanchev 13 years ago
parent
commit
ad272a0c87
  1. 12
      spring-web/src/main/java/org/springframework/http/converter/ResourceHttpMessageConverter.java

12
spring-web/src/main/java/org/springframework/http/converter/ResourceHttpMessageConverter.java

@ -85,7 +85,17 @@ public class ResourceHttpMessageConverter extends AbstractHttpMessageConverter<R @@ -85,7 +85,17 @@ public class ResourceHttpMessageConverter extends AbstractHttpMessageConverter<R
protected void writeInternal(Resource resource, HttpOutputMessage outputMessage)
throws IOException, HttpMessageNotWritableException {
StreamUtils.copy(resource.getInputStream(), outputMessage.getBody());
InputStream in = resource.getInputStream();
try {
StreamUtils.copy(in, outputMessage.getBody());
}
finally {
try {
in.close();
}
catch (IOException ex) {
}
}
outputMessage.getBody().flush();
}

Loading…
Cancel
Save