beehive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rich Feit (JIRA)" <...@beehive.apache.org>
Subject [jira] Resolved: (BEEHIVE-912) The method removeSharedFlow( String sharedFlowClassName, HttpServletRequest request ) in org.apache.beehive.netui.pageflow.PageFlowUtils no longer removes a sharedflow from the session
Date Mon, 12 Sep 2005 19:43:32 GMT
     [ http://issues.apache.org/jira/browse/BEEHIVE-912?page=all ]
     
Rich Feit resolved BEEHIVE-912:
-------------------------------

    Resolution: Invalid
     Assign To: Alejandro Ramirez  (was: Rich Feit)

This is working as expected.  We don't support crawling through our internal session attributes...
in this case, you're seeing behavior which was added for v1m1 which leaves session attributes
in place until the end of the request, at which point they are removed.  We do this so that
two concurrent requests will not conflict with each other -- in essence, they each have their
own "copy" of the session to operate on.

I'm attaching a modified test that verifies:
    - If you call our official API (PageFlowUtils.getSharedFlow()) after calling PageFlowUtils.removeSharedFlow(),
the shared flow is "officially" gone.
    - If you forward to another page flow (to avoid re-creating the same shared flow), you
can crawl through session attributes on *another request* to ensure that that the shared flow
instance is truly gone.  It may actually be worth having tests that do crawl through the session,
but they will break from time to time as our internal functionality changes.

Let me know if you have any questions about this...

> The method removeSharedFlow( String sharedFlowClassName, HttpServletRequest request )
in org.apache.beehive.netui.pageflow.PageFlowUtils no longer removes a sharedflow from the
session
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>          Key: BEEHIVE-912
>          URL: http://issues.apache.org/jira/browse/BEEHIVE-912
>      Project: Beehive
>         Type: Bug
>   Components: NetUI
>     Versions: V1
>     Reporter: Alejandro Ramirez
>     Assignee: Alejandro Ramirez
>     Priority: Critical
>      Fix For: V1
>  Attachments: sharedFlowApi.zip
>
> 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);		
> 	}

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message