[ 
https://issues.apache.org/jira/browse/WW-4662?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15448247#comment-15448247
 ] 

Lukasz Lenart edited comment on WW-4662 at 8/30/16 6:52 AM:
------------------------------------------------------------

Old behaviour was restored


was (Author: lukaszlenart):
Old behaviour was restoreed

> StreamResult closes outputstream early
> --------------------------------------
>
>                 Key: WW-4662
>                 URL: https://issues.apache.org/jira/browse/WW-4662
>             Project: Struts 2
>          Issue Type: Bug
>    Affects Versions: 2.5
>            Reporter: Michael Hum
>             Fix For: 2.5.3
>
>
> We recently upgraded from struts 2.3.x to 2.5.2 at our workplace. One of the 
> changes we noticed was with stream result - if an error occurs, the output 
> stream is automatically closed and no response is sent to the user (ignoring 
> our custom error-500 page). The content-length of the response is thus 0 - a 
> blank page.
> This is occuring due to the addition of try-with-resources. In 2.3.x, the 
> output stream wasn't set until after we find the input stream, like so:
> {code}
> try {
>    get inputStream
>    if (inputStream == null)
>         throw Exception
>    get outputStream
> } finally {
>    if inputStream != null inputStream.close()
>    if outputStream != null outputStream.close()
> }
> {code}
> However, in 2.5, this was changed to use a try-with-resources on the output 
> stream by ticket WW-4515 
> (https://git-wip-us.apache.org/repos/asf?p=struts.git;a=commit;h=3fab155b4cc530ca3ca0b69299ddcb348eb5f26d):
> {code:java}
> try (OutputStream oOutput = oResponse.getOutputStream()) {
> // ...
> }
> {code}
> So, when we throw an error, the stream is closed and nothing further is 
> written. 
> Is this intended behaviour? Is there an alternate solution to show our own 
> error pages now (with stack trace?)? 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to