Uploaded image for project: 'Struts 2'
  1. Struts 2
  2. WW-794

Issue with ServletDispatcherResponse after a JasperException

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Won't Fix
    • WW 2.1.6, WW 2.1.7
    • 2.1.1
    • Plugin - JasperReports
    • 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?

      Attachments

        Activity

          People

            husted Ted Husted
            gjoseph Grégory Joseph
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: