You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Eric Gulatee (JIRA)" <ji...@apache.org> on 2009/11/02 16:16:59 UTC

[jira] Commented: (WICKET-2387) Failure using a Redirect strategy in a Websphere Portal 6.1 Portlet due to response already committed

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

Eric Gulatee commented on WICKET-2387:
--------------------------------------

I have tried to get further details from IBM, I attach them below.  


Q: PTL 2.0 Section 11.1.4.3 seems to indicate that we should be able     
to                                                                       
set headers in the render phase. (As you indicate)                       
Can you please clarify that this is indeed a mandatory aspect of the     
Portlet 2.0 specification and not an optional part?                     
                                                                        
A: This feature is not implemented in Portal 6.1. It's not completly     
optional according to the spec but a Portal implementation can forbid   
the setting of headers e.g. for security reasons. See "PLT.12.1.1       
Response Properties".                                     




> Failure using a Redirect strategy in a Websphere Portal 6.1 Portlet due to response already committed
> -----------------------------------------------------------------------------------------------------
>
>                 Key: WICKET-2387
>                 URL: https://issues.apache.org/jira/browse/WICKET-2387
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.4.3
>         Environment: IBM Java 1.5, WebSphere 6.1
>            Reporter: Eric Gulatee
>            Assignee: Ate Douma
>
> When the following Authorization Stategy is set for in a WPS 6.1 Portlet
>  getSecuritySettings().setAuthorizationStrategy(new IAuthorizationStrategy() {
>             public boolean isInstantiationAuthorized(Class componentClass) {
>                 if (AuthenticatedWebPage.class.isAssignableFrom(componentClass)) {
>                     if (((SignInSession) Session.get()).isSignedIn()) {
>                         return true;
>                     }
>                     throw new RestartResponseAtInterceptPageException(SignInPage.class);
>                 }
>                 return true;
>                 
>             }
>             public boolean isActionAuthorized(Component component, Action action) {
>                 return true;
>             }
>         });
> We get the following stacktrace
> aused by: java.lang.IllegalStateException: clearBuffer(): illegal       
> state--> stream is committed                                             
> at                                                                       
> com.ibm.wsspi.webcontainer.util.BufferedServletOutputStream.clearBuffer( 
> BufferedServletOutputStream.java:497)                                     
> at                                                                       
> com.ibm.ws.webcontainer.srt.SRTServletResponse.reset(SRTServletResponse. 
> java:880)                                                                 
> at                                                                       
> javax.servlet.ServletResponseWrapper.reset(ServletResponseWrapper.java:   
> 228)                                                                     
> at                                                                       
> javax.servlet.ServletResponseWrapper.reset(ServletResponseWrapper.java:   
> 228)                                                                     
> at                                                                       
> javax.servlet.ServletResponseWrapper.reset(ServletResponseWrapper.java:   
> 228)                                                                     
> at                                                                       
> javax.servlet.ServletResponseWrapper.reset(ServletResponseWrapper.java:   
> 228)                                                                     
> at                                                                       
> com.ibm.ws.portletcontainer.core.impl.PortletResponseImpl.reset(PortletR 
> esponseImpl.java:355)                                                     
> at                                                                       
> org.apache.wicket.protocol.http.portlet.OSCWicketPortlet.processMimeResp 
> onseRequest(OSCWicketPortlet.java:138)                                   
> at                                                                       
> org.apache.wicket.protocol.http.portlet.OSCWicketPortlet.processRequest( 
> OSCWicketPortlet.java:80)                                                 
> at                                                                       
> org.apache.wicket.protocol.http.portlet.WicketPortlet.doView(WicketPortl 
> et.java:469)                                                             
> at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:328)     
> Which IBM has determined the cause to being:
> The cause is a PortletResponse#reset() call after the response has been   
> commited. A response is for example committed after the headers were     
> written to the client.               
> I am guessing that wicket is outputting something and then deciding to do a redirect thus causing the failure?  IS this something on the Wicket or WAS/WPS 6.1 side?  

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