PageFlowUtils.removeLongLivedPageFlow() from another page flow, fails to run 
the destroy() page flow life cycle method
----------------------------------------------------------------------------------------------------------------------

         Key: BEEHIVE-1103
         URL: http://issues.apache.org/jira/browse/BEEHIVE-1103
     Project: Beehive
        Type: Bug

  Components: NetUI  
    Versions: V1, 1.0.1    
    Reporter: Carlin Rogers


Programmatically trying to remove a long lived page flow by calling 
PageFlowUtils.removeLongLivedPageFlow() from another page flow, fails to run 
the destroy() page flow life cycle method, though the long lived page flow does 
get removed from the session.

The destroy() method is not called because the long lived page flow attribute 
name does not exist on the request (just on the session) when 
DeferredSessionStorageHandler.removeAttribute() is called from the 
PageFlowUtils routine. Therefor it will not "Emulate a removeAttribute on the 
session" and call the long lived page flow's valueUnbound() method. However, 
DSSH.removeAttribute() does add this attribute to the change attribute list. 
Then at when DSSH.applyChanges() gets called we do remove the the attribute 
abject from the session but without the PageFlowManagedObject.valueUnbound() 
method calling the destroy().

Note that when the PageFlowUtils.removeLongLivedPageFlow() is called via  the 
long lived page flow's own remove() routine (inherited from 
FlowController.remove()), then the attribute name is on the request (as well as 
the session) and the destroy method gets called. However, a page flow that 
calls its remove() method from within one of its actions may have undesirable 
side effects or throw exceptions if the page flow has a @Control control. The 
remove() method runs through the page flow destroy() life cycle method before 
the ControlContainerContext endContrext() method and any onRelease() calls to 
the control.

This is probably not a scenario that is performed very often but was noted from 
some tests of long lived page flows that contain controls. I'll submit these 
tests shortly.

-- 
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

Reply via email to