[
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)