I have an issue with readWithMessageConverters(HttpInputMessage inputMessage, ...) in AbstractMessageConverterMethodArgumentResolver class.

It seems like this method initialize a new FileInputStream on calling inputMessage.getBody(), then the FileInputStream is read by calling: 1. genericConverter.read(..., inputMessage); OR 2. ((HttpMessageConverter) converter).read(targetClass, inputMessage);

This FileInputStream is getting closed on calling genericConverter.read(..., inputMessage) (Jackson as a genericConverter). But on calling ((HttpMessageConverter) converter).read(targetClass, inputMessage); with a converter of type StringHttpMessageConverter the FileInputStream is not closed.

There is no decumentation on HttpMessageConverter that indicates the read method should close the FileInputStream.

So I guess the "readWithMessageConverters" method should ensure the FileInputStream is closed.