I tried adding a note a bit ago, but it didn't work. Trying again.
As I mentioned in the original report, this is similar to bug 1299. Here's an example of what I'm calling a "complex" jsp page. If a page like this is used as the location for the error page, then the browser doesn't actually display the page, it downloads it as a file. This is the same behavior that the RewriteFilter servlet does when trying to redirect to a similar page. This is different from the rewrite-dispatch tag which IS able to redirect to this type of "complex" jsp page. It seems like if there is any kind of significant pre-processing that needs to be done, it doesn't get done, and the page is not successfully converted/compiled and is therefore treated like a regular text file by the browser.
Anyway, here's an example of a "complex" jsp page. Remember, this type of page is fine for the rewrite-dispatch directive. But it doesn't work with either the RewriteFilter or the <error-page>.
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" [^] [^] version="1.2">
<!-- code layer, nothing that's outputting data -->
<!-- include logic for xsl transformation filtering -->
<!-- end code layer start xml output layer -->
<page title="Page Not Found" menuId="" subMenuId="">
<meta name="description" content="404 Error Page" />
<jsp:directive.include file="/WEB-INF/xml/notFoundError.xml" />
<jsp:directive.include file="/WEB-INF/xml/cta/startEdu.xml" />
<jsp:directive.include file="/WEB-INF/xml/cta/questions.xml" />