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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top