Uploaded image for project: 'Wicket'
  1. Wicket
  2. WICKET-2387

Failure using a Redirect strategy in a Websphere Portal 6.1 Portlet due to response already committed

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Won't Fix
    • 1.4.3
    • None
    • wicket
    • None
    • IBM Java 1.5, WebSphere 6.1

    Description

      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?

      Attachments

        Issue Links

          Activity

            People

              ivaynberg Igor Vaynberg
              egulatee Eric Gulatee
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: