wicket-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jan Riehn (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (WICKET-4433) Exception (Header was already written to response!) when setting response page in IRequestCycleListener
Date Wed, 14 Nov 2012 15:54:13 GMT

    [ https://issues.apache.org/jira/browse/WICKET-4433?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13497171#comment-13497171
] 

Jan Riehn commented on WICKET-4433:
-----------------------------------

Hello,

Martins solution does not really fix the problem. The first request is scheduled and executed,
might be that the RestartResponseException should avoid this. 
The following snippet fits better:

public class MyRequestCycleListener extends AbstractRequestCycleListener {
    @Override
    public void onRequestHandlerResolved(RequestCycle cycle, IRequestHandler handler) {
        if (handler instanceof IPageRequestHandler) {          
            if (condition) {
                throw new RedirectToUrlException("http://wicket.apache.org/");
            }
       }
   }
}

Best regards,

Jan

                
> Exception (Header was already written to response!) when setting response page in IRequestCycleListener
> -------------------------------------------------------------------------------------------------------
>
>                 Key: WICKET-4433
>                 URL: https://issues.apache.org/jira/browse/WICKET-4433
>             Project: Wicket
>          Issue Type: Bug
>    Affects Versions: 1.5.4
>            Reporter: Neil Curzon
>         Attachments: myproject.zip, myproject.zip
>
>
> We have an IRequestCycleListener implementation that's basically:
> 	@Override
> 	public void onBeginRequest(RequestCycle cycle) {
> 		if (<condition>)) {
> 			cycle.setResponsePage(SpecificPage.class);
> 		}
> 	}
> This results in an exception when the condition is true, and the response page is set:
> java.lang.IllegalStateException: Header was already written to response!
> 	at org.apache.wicket.protocol.http.HeaderBufferingWebResponse.checkHeader(HeaderBufferingWebResponse.java:64)
> 	at org.apache.wicket.protocol.http.HeaderBufferingWebResponse.setDateHeader(HeaderBufferingWebResponse.java:134)
> 	at org.apache.wicket.protocol.http.BufferedWebResponse$SetDateHeaderAction.invoke(BufferedWebResponse.java:310)
> 	at org.apache.wicket.protocol.http.BufferedWebResponse.writeTo(BufferedWebResponse.java:580)
> 	at org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:185)
> 	at org.apache.wicket.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:167)
> 	at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:781)
> 	at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
> 	at org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:304)
> 	at org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:313)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message