[ 
https://issues.apache.org/jira/browse/COCOON-2150?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12577744#action_12577744
 ] 

Rice Yeh commented on COCOON-2150:
----------------------------------

I do not know whether I am naive to say just adding 
!wrappedResponse.isCommited()  on the if statement on line 482 in 
ServletServiceContext.java may solve the problem. The following is the patch.

Index: 
C:/coffee/cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/ServletServiceContext.java
===================================================================
--- 
C:/coffee/cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/ServletServiceContext.java
    (revision 635788)
+++ 
C:/coffee/cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/ServletServiceContext.java
    (working copy)
@@ -479,7 +479,7 @@
                 }
 
                 int status = wrappedResponse.getStatus();
-                if (se != null || (status < 200 || status >= 400)) {
+                if (!wrappedResponse.isCommitted() && (se != null || (status < 
200 || status >= 400))) {
                     wrappedResponse.reset();
                     NamedDispatcher _super = (NamedDispatcher) 
ServletServiceContext.this.getNamedDispatcher(SUPER);
                     if (_super != null) {


> Error on resetting response
> ---------------------------
>
>                 Key: COCOON-2150
>                 URL: https://issues.apache.org/jira/browse/COCOON-2150
>             Project: Cocoon
>          Issue Type: Bug
>          Components: - Servlet service framework
>    Affects Versions: 2.2-dev (Current SVN)
>            Reporter: Jörg Heinicke
>            Assignee: Grzegorz Kossakowski
>             Fix For: 2.2-dev (Current SVN)
>
>
> This is the exception shown on the console:
> java.lang.IllegalStateException: Committed
>         at org.mortbay.jetty.Response.resetBuffer(Response.java:855)
>         at org.mortbay.jetty.Response.reset(Response.java:834)
>         at 
> javax.servlet.ServletResponseWrapper.reset(ServletResponseWrapper.java:182)
>         at 
> org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:576)
>         at 
> org.apache.cocoon.servletservice.ServletServiceContext$PathDispatcher.forward(ServletServiceContext.java:545)
>         at 
> org.apache.cocoon.servletservice.spring.ServletFactoryBean$ServiceInterceptor.invoke(ServletFactoryBean.java:230)
>         at 
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
>         at 
> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
>         at $Proxy2.service(Unknown Source)
>         at 
> org.apache.cocoon.servletservice.DispatcherServlet.service(DispatcherServlet.java:102)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>         at 
> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:459)
> It seems to be thrown whenever the response object is reseted after the 
> actual response has been sent by the sitemap error handler. In this case 
> reset is no longer possible since the response has already been committed as 
> stated in the error message.

-- 
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