3 Replies Latest reply on Mar 2, 2007 9:03 AM by raffaele.camanzo

    Explicit conversation id problem

    raffaele.camanzo

      Hi All,

      since the Seam 1.1.1GA version (now I'm working on the 1.2.0PATCH1) I noted a mis-alignment of the Seam behaviour from the reference documentation.

      In the "6.6 Using an "explicit" conversation id" section I found this description:


      Clearly, these example result in the same conversation id every time a particular hotel, blog or task is selected.
      So what happens if a conversation with the same conversation id already exists when the new conversation begins?
      Well, Seam detects the existing conversation and redirects to that conversation without running the
      @Begin method again. This feature helps control the number of workspaces that are created when using workspace
      management.


      This is a good feature, but is not (at least in my application) working since the 1.1.1GA version; this is not a huge problem because I solved it with a boolean value (not that elegant but working)... but if the problem exists and you fix it... I appreciate.

      Regards,
      Raffaele Camanzo

        • 1. Re: Explicit conversation id problem
          gavin.king

          Please report it in JIRA, with a runnable test case.

          • 2. Re: Explicit conversation id problem
            lle

            Hi Raffaele ,

            Can you please explain what is the mis-alignment and why it doesn't work and how did you fix it with the boolean value?

            I am having some issue with explicit conversation Id and wondering if it is the same issue here.

            Thanks
            ly

            • 3. Re: Explicit conversation id problem
              raffaele.camanzo

              Hi Gavin,


              I added the issue and the test case, you can find them here:
              http://jira.jboss.com/jira/browse/JBSEAM-976

              I'm also trying to create a test case for the forum post:
              http://www.jboss.com/index.html?module=bb&op=viewtopic&t=102935

              in order to understand if I can better explain what happens in my application, but, please can you have a glance at that, maybe I misunderstood something...

              Thank you.


              Hi Lle,

              the problem is this one: in the documentation (6.6) there's a description of the Seam behaviour when multiple calls are made on the @Begin method of a conversation with a given ID; the behaviour expected is to avoid to call more than once the @Begin method, i.e. the first request which needs the creation of a conversation with a given ID causes the @Begin method call, further requests on that ID should skip the execution of such method; but this seems not to happen (at least to me).

              the solution is straightforward: even if the @Begin method is called more than once Seam retrieves the correct conversation with it's status, then:

              
              private boolean passed = false;
              
              @Begin(join=true, id="<whateveryouneed>")
              public String startConversation() {
               if(! passed) {
               passed = true;
               // initialization here
               }
              }
              


              Regards,
              Raffaele Camanzo