Spring Boot : InputStreamResource et fermeture du flux
Bonjour à tous,
La question est plutôt simple.
J'utilise Spring Boot et un objet InputStreamResource pour envoyer un fichier via un service Rest.
Voici la méthode :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| @RequestMapping(value = "/download", method = RequestMethod.GET)
public ResponseEntity<InputStreamResource> downloadFile() {
InputStream fileStream = getStream();
if (sampleStream != null) {
return ResponseEntity.ok().contentType(MediaType.parseMediaType("application/octet-stream"))
.body(new InputStreamResource(fileStream));
} else {
// Else block
}
} |
Cet exemple est le plus simple qu'on peut trouver un peu partout sur le web (stackoverflow, tutoriels divers...)
Mais une question demeure dans mon esprit :
Est-ce-que l'objet InputStreamResource ferme automatiquement le flux fileStream après l'envoi ?
Je n'ai trouvé aucune ressource sur le web qui traite ce sujet donc j'imagine que c'est le cas et que je n'ai pas à m'en préoccuper. Mais j'aimerais avoir l'avis de la communauté. ;)
PS: si j'entoure mon return par un try/catch/finally et que je ferme mon flux dans ce finally, un exception est levée (stream closed).
Merci pour vos commentaires.