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

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Won't Fix
    • Affects Version/s: 1.4.3
    • Fix Version/s: None
    • Component/s: wicket
    • Labels:
      None
    • Environment:
      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

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

                Dates

                • Created:
                  Updated:
                  Resolved: