Issue
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.
Solution
The underlying class where this is handled is ResourceHttpMessageConverter and it closes the underlying input stream as is evident from here
Answered By - Shailendra
Answer Checked By - Marie Seifert (JavaFixing Admin)