O Struts2 fecha o “InputStream” depois de obter o resultado?
-
27-10-2019 - |
Pergunta
Eu tenho uma ação em struts 2
onde ele abre um FileInputStream
, lê uma imagem e mostra em um jsp.
A questão é que, quando o struts terminar de obter a imagem, ele cuidará automaticamente do FileInputStream
e close()
ou o stream será deixado open
?
Solução
Struts2 cuidará de fechar o fluxo de entrada depois de fazer o trabalho para você.
Aqui está o link para o código-fonte e você pode ver muito bem que foi tomado o cuidado de fechar o fluxo.
Código-fonte Struts2 StreamResult
Aqui está o snippet de código do mesmo:
finally {
if (inputStream != null) inputStream.close();
if (oOutput != null) oOutput.close();
}
Espero que você tenha uma ideia clara de como as coisas estão indo.
Outras dicas
O resultado fechará o fluxo de entrada;tudo o que a ação faz é fornecer o fluxo.Seu código não tem mais controle do fluxo de entrada quando a ação retorna.
O código relevante está em org.apache.struts2.dispatcher.StreamResult:doExecute
.