Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Won't Fix
-
WW 2.1.6, WW 2.1.7
-
None
-
Patch
Description
Following my thread on http://forums.opensymphony.com/thread.jspa?messageID=8487 , here's patch + testcase, in case you guys think the problem is valid.
I had to resort to jmock-cglib, since I needed to mock the PageContext concrete class: you need jmock-1.0.1 , jmock-cglib-1.0.1 , cglib-2.0.2 and asm-1.4.3 for it to work.
// Here's a copy of my original post, for the record:
I'm having an issue with the ServletDispatcherResult : I have a
(simplistic) ExceptionInterceptor, which returns ERROR in case in
catches any Throwable.
I have a global result for error, mapped to an ErrorAction of ours,
which currently just logs and returns SUCCESS (the idea being that it's
going to automatically send a mail to someone, or create a jira bug
report if appropriate). This in turn has its SUCCESS result mapped to a
dispatcher for some jsp.
The problem actually occurs when the original action has a
JasperException thrown in its dispatched jsp view (currently using
tomcat 5.5.4) : the ServletDispatcherResult can't dispatch to the
error.jsp (which is the result of the ErrorAction), because, like jasper
reports, the Stream is already closed.
I figured that by removing lines 58-62 from ServletDispatcherResult,
thing just work as I expect. That is, removing he pageContext.include
call, and letting my jsp be forwarded instead. Since I'm not sure what
the intent with pageContext.include is - I've seen an older jira report
mentionning it (WW-292), I thought it could simply be optional. (i.e,
adding a setSkipPageContextInclude(boolean skip) in ServletDispatcherResult)
How does that sound? I'm currently working on a patch for this, but
PageContext being a concrete class, I needed to use jmock+jmock-cglib
instead of mockobjects. What do you guys think?