Uploaded image for project: 'Beehive'
  1. Beehive
  2. BEEHIVE-912

The method removeSharedFlow( String sharedFlowClassName, HttpServletRequest request ) in org.apache.beehive.netui.pageflow.PageFlowUtils no longer removes a sharedflow from the session

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Invalid
    • 1.0
    • 1.0
    • NetUI
    • None

    Description

      1.- Unzip the attached pageflow into a beehive enabled webapp.
      2.- Build and deploy your webapp and access the pageflow (e.g. http://localhost:<port>/<webapp_context>/sharedFlowApi/Controller.jpf

      In that page, hit the "verify" link and then the "Remove sharedFlowApi.SharedFlowApiTest from the Seession using PageFlowUtils.removeSharedFlow(String sharedFlowClassName, HttpServletRequest request)" link

      Expected: The page should display a message that confirms the fact that you have removed a sharedflow from the session.
      Actual: The sharedflow is still in the session. The method removeSharedFlow( String sharedFlowClassName, HttpServletRequest request ) in org.apache.beehive.netui.pageflow.PageFlowUtils no longer removes a sharedflow from the session

      The structure of the sharedFlowApi.Controller.jpf pageflow is as follows:
      sharedFlowApi.Controller.jpf contains a sharedflow reference "sharedFlow2":
      sharedFlowRefs=

      { @Jpf.SharedFlowRef(name="sharedFlow2", type=sharedFlowApi.pageFlowUtilApi.removeSharedFlow.AnotherSharedFlowApi.class) }

      Then, I have an action method to remove the sharedflow as follows:
      @Jpf.Action(
      forwards=

      { @Jpf.Forward( name="success", navigateTo=Jpf.NavigateTo.currentPage ) }

      )
      public Forward pageFlowUtilRemoveSharedFlow()
      {
      UseSharedFlowApi example = new UseSharedFlowApi(this.getRequest());
      example.removeSharedFlow();
      String objectsInSession = null;
      for(Enumeration sessionObjects = this.getSession().getAttributeNames(); sessionObjects.hasMoreElements()

      { if (SHAREDFLOW_TOREMOVE.equals(sessionObjects.nextElement())) objectsInSession = SHAREDFLOW_TOREMOVE + " is STILL in the session" + "\n"; }

      if (objectsInSession == null)
      objectsInSession = SHAREDFLOW_TOREMOVE + " has been REMOVED from the session" + "\n";
      return new Forward( "success", "message", objectsInSession);
      }

      The removeSharedFlow() method of sharedFlowApi.UseSharedFlowApi looks as follows:
      public void removeSharedFlow()

      { PageFlowUtils.removeSharedFlow(REMOVE_SHAREDFLOW, this.request); }

      Attachments

        1. sharedFlowApi-modified.zip
          8 kB
          Richard Feit
        2. sharedFlowApi.zip
          6 kB
          Alejandro Ramirez

        Activity

          People

            alramire Alejandro Ramirez
            alramire Alejandro Ramirez
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: