2 Replies Latest reply on Jul 27, 2008 5:52 PM by enda

    Natural Nested Conversations

    enda

      Your JIRA is currently down so I am posting it here for now



      Natural Nested Conversation



      I have chosen the harder way in my application.
      I have figured out that this combination does not work well now.


      The biggest problem I got into is when I end my root conversation, it does not close the children.


      Example:




      • root conversation id = contest:2




      • child conversation id = exam:82



      when I call root conversation end() it closes contest:2 conversation


      then there is new conversation open with identifier eg 19


      and at this context is called


      Manager.removeCurrentConversationAndDestroyNestedContexts


      well this tries to remove the child conversation, but the problem is that this would work from conversation contest:2 context,
      but it does not work from conversation 19 context


      Workaround



      if(getConversationNestedChildren().size() > 0) {
                  Conversation.instance().redirect();
      }



      this fortunately uses the context of conversation contest:2. Even thought that the conversation is already ended and redirect is solved by pages.xml


      Related



      http://jira.jboss.org/jira/browse/JBSEAM-2606


      Other problems



      Redirects to natural conversation sometimes causes Exception conversation name already in use.
      It seems that I cannot programmaticaly  close root conversation and redirect to another (new) one. Because its children will get orphans!


      I think (I am sure you will be arguing) that the current life-cycle for natural nested conversation is wrong.
      The removal of children should happen immediately when parent is removed.