[ 
https://issues.apache.org/jira/browse/GERONIMO-3896?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

David Jencks updated GERONIMO-3896:
-----------------------------------

         Priority: Blocker  (was: Major)
    Fix Version/s: 2.2
                   2.1.1

will try to get servlet spec release out shortly.
Tomcat has agreed this is a bug and applied the fix in the patch.

> Error processing HEAD method by default HttpServlet#doHead()
> ------------------------------------------------------------
>
>                 Key: GERONIMO-3896
>                 URL: https://issues.apache.org/jira/browse/GERONIMO-3896
>             Project: Geronimo
>          Issue Type: Bug
>      Security Level: public(Regular issues) 
>          Components: specs
>    Affects Versions: 2.0.2
>         Environment: Geronimo 2.0.2/Tomcat, Geronimo 2.1?
>            Reporter: Andrey Utkin
>            Assignee: David Jencks
>            Priority: Blocker
>             Fix For: 2.1.1, 2.2
>
>         Attachments: GERONIMO-3896.patch, 
> geronimo-servlet_2.5_spec-1.1.1-fake.jar
>
>
> I have Servlet with use RequestDispatcher.include()/forward() to JSP.
> My Servlet extends HttpServlet. I don`t overwrite doHead() method.
> While processing HEAD method following exception throws:
> {code}
> 09:18:57,647 ERROR [[SimpleDispatchServlet]] Servlet.service() for servlet 
> SimpleDispatchServlet threw exception
> javax.servlet.ServletException: Original SevletResponse or wrapped original 
> ServletResponse not passed to 
> RequestDispatcher in violation of SRV.8.2 and SRV.14.2.5.1
>         at 
> org.apache.catalina.core.ApplicationDispatcher.checkSameObjects(ApplicationDispatcher.java:985)
>         at 
> org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:493)
>         at 
> org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:481)
>         at 
> com.km.webapp.test.simple.SimpleDispatchServlet.doGet(SimpleDispatchServlet.java:26)
>         at javax.servlet.http.HttpServlet.doHead(HttpServlet.java:274)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
>         at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>         at 
> org.apache.geronimo.tomcat.valve.DefaultSubjectValve.invoke(DefaultSubjectValve.java:56)
>         at 
> org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:353)
>         at 
> org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBeforeAfterValve.java:47)
>         at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>         at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
>         at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>         at 
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
>         at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
>         at 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>         at 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
>         at 
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>         at java.lang.Thread.run(Thread.java:619)
> {code}
> Exploring code I found that Tomcat`s implementation of RequestDispatcher 
> expects that passed Response/Request objects is original objects or is 
> wrapped by ServletRequestWrapper/ServletResponseWrapper. But 
> geronimo-servlet_2.5_spec/HttpServlet.java#doHead() use NoBodyResponse class 
> which is not instance of  ServletResponseWrapper. So, exception thrown.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to