0 Replies Latest reply on Aug 2, 2007 6:51 AM by Thomas Hallgren

    Conversation created when it shouldn't be

    Thomas Hallgren Newbie

      I have the following declaration in my pages.xml

      <conversation name="cname" parameter-name="oid" parameter-value="#{x.y}"/>

      My page declaration is:
      <page conversation="cname">
       <begin-conversation join="true"/>
       <param name="oid" value="#{componentLoader.oid}" />
      </page>

      The componentLoader is a stateful session bean with conversation scope. My desire is to instantiate only one such bean for any given oid. It almost works...

      The bean is created in the correct scope and my page shows up with correct information. My problem is that on that page, there is a ritch:dataTable. When clicking on a row in that table, a commandLink action is executed which in turn causes some detailed information to be displayed on the same page. This works most of the time (nine out of ten perhaps). But then, all of the sudden, a new conversation is magically initialized and a new componentLoader object is created. I know this because I have some trace in the @Create method of the component loader. That trace prints the id of the injected conversation. I can see that this unwanted bean is destroyed shortly after and a new attempt clicking on the same link succeeds.

      I've tried various things such as manipulating session and conversation timeouts, adding other objects in between to hold on to the oid, etc. I want to figure out why this extra conversation suddenly appears on the stack but so far, all my attempts have been in vane.

      I would really appreciate some input on this. What should I look for and where?

      Regards,
      Thomas Hallgren