Jetspeed 2
  1. Jetspeed 2
  2. JS2-1046

Action processing for maximized portlet which sets any render parameter on ActionResponse without changing window state causes portal page to resort to "normal" window state rendering whereby all portlets are rendered instead of only maximized one

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 2.2.0
    • Fix Version/s: 2.2.1
    • Component/s: Aggregation
    • Labels:
      None
    • Environment:
      Windows XP
      Java 5.0
      Jetspeed 2.2.0/Tomcat 6.0.18 binary distribution

      Description

      Steps to reproduce:
      1. Modify the BonjourMonde portlet from the Jetspeed 2.2.0 tutorial creating an action in which a render parameter is set on ActionResponse without changing window state, as in the following:
      // Begin BonjourMonde.java
      package org.apache.portals.tutorials;

      import java.io.IOException;

      import javax.portlet.ActionRequest;
      import javax.portlet.ActionResponse;
      import javax.portlet.GenericPortlet;
      import javax.portlet.PortletException;
      import javax.portlet.PortletURL;
      import javax.portlet.ProcessAction;
      import javax.portlet.RenderRequest;
      import javax.portlet.RenderResponse;

      public class BonjourMonde extends GenericPortlet {

      @Override
      protected void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException

      { response.setContentType("text/html"); PortletURL url = response.createActionURL(); url.setParameter(ActionRequest.ACTION_NAME, "refresh"); response.getWriter().println("<form name=\"form" + response.getNamespace() + "\" method=\"post\" action=\"" + url.toString() + "\"/>"); response.getWriter().println("<b>Bonjour: View Mode</b>"); response.getWriter().println("<input type=\"submit\" value=\"Refresh\"/>"); response.getWriter().println("</form>"); }

      @ProcessAction(name="refresh")
      public void refreshAction(ActionRequest request, ActionResponse response) throws PortletException, IOException

      { response.setRenderParameter("some", "value"); }


      }
      // End BonjourMonde.java
      2. Include above portlet in portal page and maximise the portlet
      3. Invoking the "refresh" action will cause the portal page to resort to "normal" window state rendering whereby all portlets are rendered instead of only maximized one

      This behaviour was not observed in Jetspeed 2.1.3 and would seem to violate the Portlet specification:
      From JSR-286:
      PLT.7.1.2 Including a Portlet Mode or a Window State

      L38. If the window state is not set for a URL, it must have the
      window state of the current request as defaultxlv

        Activity

        Transition Time In Source Status Execution Times Last Executer Last Execution Date
        Open Open Resolved Resolved
        245d 21h 37m 1 Ate Douma 24/Mar/10 21:38
        Resolved Resolved Closed Closed
        558d 23h 25m 1 Ate Douma 04/Oct/11 22:04
        Ate Douma made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Ate Douma made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Hide
        Ate Douma added a comment -

        Good catch Bernard

        This was a nasty bug in a complex part of the request state with session state synchronisation, which resulted in losing track of the current maximized window when it also had other render state parameters set.
        Thanks for reporting!

        Show
        Ate Douma added a comment - Good catch Bernard This was a nasty bug in a complex part of the request state with session state synchronisation, which resulted in losing track of the current maximized window when it also had other render state parameters set. Thanks for reporting!
        Ate Douma made changes -
        Assignee Ate Douma [ adouma ]
        Ate Douma made changes -
        Field Original Value New Value
        Fix Version/s 2.2.1 [ 12313443 ]
        Bernard Holland created issue -

          People

          • Assignee:
            Ate Douma
            Reporter:
            Bernard Holland
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development