Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to handle IO streams in Spring MVC

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.

like image 981
Shailendra Avatar asked Feb 07 '18 09:02

Shailendra


1 Answers

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

like image 89
Shailendra Avatar answered Oct 16 '22 14:10

Shailendra