11

I have a method which returns ResponseEntity(InputStreamResource). In this method, I'm getting InputStream from a file based on the filename input and then sending InputStreamResource as a response.

Code snippet

InputStream inputStream = ...;    
ResponseEntity<InputStreamResource> response = new ResponseEntity<InputStreamResource>(new InputStreamResource(inputStream), headers, HttpStatus.OK);
return response;

Here do I need to close inputStream object? If I do so, I'm getting

IllegalStateException: Closed message.

Do I need to explicitly close them or container will take care.

jannis
  • 4,843
  • 1
  • 23
  • 53
Shailendra
  • 113
  • 1
  • 5

1 Answers1

18

The underlying class where this is handled is ResourceHttpMessageConverter and it closes the underlying input stream as is evident from here

Shailendra
  • 8,874
  • 2
  • 28
  • 37