You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2013/09/16 16:22:44 UTC

[Bug 55561] New: Wrong _jspService implementation

https://issues.apache.org/bugzilla/show_bug.cgi?id=55561

            Bug ID: 55561
           Summary: Wrong _jspService implementation
           Product: Tomcat 7
           Version: unspecified
          Hardware: All
                OS: All
            Status: NEW
          Severity: major
          Priority: P2
         Component: Servlet & JSP API
          Assignee: dev@tomcat.apache.org
          Reporter: paudeveras@gmail.com

Good evening,

While migrating Sun Identity Manager 8.1 to Tomcat 7 found the next error when
trying to access login page:

---

Jul 3, 2013 12:53:24 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [jsp] in context with path [/gdi] threw
exception [Unable to compile class for JSP:

An error occurred at line: 68 in the jsp file: /includes/getLocale.jsp
The final local variable request cannot be assigned. It must be blank and not
using a compound assignment
65: }
66: // Create a new "request" parameter to allow forms to properly handle
67: // utf-8 characters
68: request = BufferedRequest.wrap(request);
69:
70:
71: // Defined here but used in getStyleSheet.jsp and userHeader.jsp to setup
the

---

Finally, I realized that previous Tomcat versions had this signature for
_jspService:

public void _jspService(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response) throws java.io.IOException,
javax.servlet.ServletException;

but Tomcat 7 declares parameters as final:

public void _jspService(final javax.servlet.http.HttpServletRequest
request,final javax.servlet.http.HttpServletResponse response) throws
java.io.IOException, javax.servlet.ServletException

I've been reading JSP 2.2 Maintenance Release 2
(http://download.oracle.com/otndocs/jcp/jsp-2.2-mrel-eval-oth-JSpec/), and at
page 271 I've found than the method signature must be :

public void _jspService(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
throws ServletException, IOException

Is this a bug?, should it be corrected?

Cheers,

Pau.

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


[Bug 55561] Wrong _jspService implementation

Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=55561

Konstantin Kolinko <kn...@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |WONTFIX

--- Comment #1 from Konstantin Kolinko <kn...@gmail.com> ---
"request", "response" etc. are provided by container, per chapter "JSP.1.8.3
Implicit Objects". You should not change the values of those.

Trying to replace a "request" is short-sighted. You are overriding one place,
but the same object is available through other APIs, e.g.
PageContext.getRequest().

If you want to wrap a request, configure a Filter.

For a record, this change in Jasper was implemented in r1058102.

> at page 271 I've found than the method signature must be :

I do not see the fragment that you are citing at that page. I see it in chapter
"JSP.9.1.3 Implementation Flexibility" page "1-194" (232 of 594).

I read the code in that chapter as non-normative. It explicitly says "An
implementation may implement things differently".

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org