1 Reply Latest reply on May 4, 2009 8:06 PM by coldgin

    Conversation Using pages.xml

    coldgin

      Hi. I keep receiving a



      org.jboss.seam.ConcurrentRequestTimeoutException: Concurrent call to conversation

      exception for the following pages.xml configuration, when control leaves addUser.xhtml and attempts to go back to the userSearch page. I am thinking that I get this exception because the begin-conversation tag contains join equals true. What I want is a long running conversation to begin on the search page, and then end when it leaves the update or add pages. However, when control re-enters the search page (for the second and subsequent visit), I want a NEW long running conversation to begin (even though join equals true).


      My question: What is the default behavior for begin-conversation join equals true??? Does it start a conversation if one does not exist (it seems like it starts a conversation the FIRST time)?? How can I achieve the long running conversation that I have described? (Seam does not start a long running conversation without join equals true).


      Thank you.


          <page view-id="/userSearch.xhtml" login-required="true">
          
              <begin-conversation join="true"/>
              
              <navigation from-action="#{searchManager.processUpdateSelection}">
                  <rule if-outcome="updateUser">
                      <redirect view-id="/updateUser.xhtml"/>
                  </rule>
              </navigation>
              <navigation from-action="#{searchManager.processAddSelection}">
                  <rule if-outcome="addUser">
                      <redirect view-id="/addUser.xhtml"/>
                  </rule>
              </navigation>
          </page>
          
          <page view-id="/updateUser.xhtml" login-required="true">
              <navigation>
                  <rule if-outcome="search">
                      <end-conversation before-redirect="true"/>
                      <redirect view-id="/userSearch.xhtml"/>
                  </rule>
                  <rule if-outcome="cancel">
                      <end-conversation before-redirect="true"/>
                      <redirect view-id="/userSearch.xhtml"/>
                  </rule>
              </navigation>
          </page>
          
          <page view-id="/addUser.xhtml" login-required="true">
              <navigation>
                  <rule if-outcome="search">
                      <end-conversation before-redirect="true"/>
                      <redirect view-id="/userSearch.xhtml"/>
                  </rule>
                  <rule if-outcome="cancel">
                      <end-conversation before-redirect="true"/>
                      <redirect view-id="/userSearch.xhtml"/>
                  </rule>
              </navigation>
          </page>
      

        • 1. Re: Conversation Using pages.xml
          coldgin

          OK, got it. I had some ajax calls going on in an include that I was pulling into both of my .xhtml pages. Had to put a requestDelay attribute on each of my a4j:support tags, and I also had to increase the concurrent-request-timeout setting of the core:manager tag in components.xml