4 Replies Latest reply on Feb 28, 2011 6:33 AM by ilya_shaikovsky

    Region issues

    kito99

      Has anyone seen a problem where two Ajax regions on a page bound to different model properties seem to interfere with each other (without a4j:queue). What we're seeing is that if the second region initiates a request before the first region's request is complete, the first region's value isn't updated on the model, even though they were updating completely different properties. The value is still visible in the browser, however.

       

      The component sending the request is Tomahawk <t:radioButton> with <a4j:support> and immediate=true.

       

      We're using an ancient version of RichFaces -- 3.0.1 (unfortunately we don't have approval to upgrade this project for a few more months).

       

      Does this sound vaguely familiar to anyone? I'm hoping it's an issue that upgrading will just magically solve, since I'm sure the queue behavior has changed since 3.0.1.

        • 1. Region issues
          ilya_shaikovsky

          Hi Kito!

           

          using that "ancient" version - there are next scenarios:

          • Without using queue requests will be just sent concurrently. So you should care about concurrency support at server side level objects.
          • Using queue(till the version where we redesigned queue and introduced a4j:queue component) things will become even worse. One request will replace any other if them defined with the same queue. So speaking kindly in that version it was not real "queue", it supported only all the events grouping and sending one of them. So if requests from different regions/forms getting grouped - updates from the first ones will not occur as the only latest from anther region getting sent.

           

          And for sure there could be some additional issues which need to be checked in jira as it not possible to remember possible ones for so long time

          1 of 1 people found this helpful
          • 2. Region issues
            kito99

            Hello Ilya,

             

            Thanks for shedding some light on this. The behavior you described for using a queue is exactly the behavior we saw -- the second request would overwrite the first. However, is that behavior possible even if we aren't using a queue explicitly?

             

            ---

            Kito D. Mann | twitter: kito99 | Author, JSF in Action

            Virtua, Inc. | http://www.virtua.com | JSF/Java EE training and consulting

            http://www.JSFCentral.com - JavaServer Faces FAQ, news, and info | twitter: jsfcentral

            +1 203-404-4848 x3

             

            See you at JAX and JSF Summit 2010 June 20-23rd in San Jose: http://jaxconf.com/

            • 3. Region issues
              kito99

              Hello Ilya,

               

              Any thoughts on the last message?

              • 4. Region issues
                ilya_shaikovsky

                No if you not using queue - both requests should be fired.. and the problem in your case seems how them processed (the second for example could be finished faster thanthe first)..

                 

                Maybe it's better to workaround that by disabling the form controls in such cases when concurrency should be avoided?