¿Struts2 cierra "InputStream" después de obtener el resultado?
-
27-10-2019 - |
Pregunta
Tengo una acción en struts 2
donde abre un FileInputStream
, lee una imagen y la muestra en un jsp.
La pregunta es que cuando struts termine de obtener la imagen, ¿se encargará automáticamente del FileInputStream
y close()
o la secuencia se dejará open
?
Solución
Struts2 se encargará de cerrar el flujo de entrada una vez que haya hecho el trabajo por usted.
Aquí está el enlace al código fuente y puede ver muy bien que se ha cuidado al cerrar la transmisión.
Código fuente de Struts2 StreamResult
Aquí está el fragmento de código del mismo:
finally {
if (inputStream != null) inputStream.close();
if (oOutput != null) oOutput.close();
}
Hope le dará una idea clara de cómo van las cosas.
Otros consejos
El resultado cerrará el flujo de entrada;todo lo que hace la acción es proporcionar la corriente.Su código ya no tiene el control del flujo de entrada una vez que regresa la acción.
El código relevante está en org.apache.struts2.dispatcher.StreamResult:doExecute
.