Thanks for the info!  I don't think that's the culprit here, although I'll
keep in mind that multiple requests might not arrive in the order sent.


On Fri, Feb 25, 2011 at 11:04 AM, Rich M <rich...@moremagic.com> wrote:

> I can't say with any certainty this is your problem, but the one time I was
> having issues with an AJAX request being dumped and never showing up server
> side there was a race condition. I had it listening to the click event of a
> submit button, and on slower connections the form submit would beat out the
> AJAX request to the server. In your case I could see the Periodic update
> (assuming its on the same page) creating some sort of race condition. Worth
> considering if so.
>
> Here is the link to the thread on this list so you can compare and see if
> your code is similar: http://tapestry.markmail.org/thread/6nlztv5dlv4pix77
>
> Regards,
> Rich
>
>
> On 02/25/2011 10:35 AM, Bryan Lewis wrote:
>
>> To follow up...  moving the first select out of the zone didn't help.  I
>> didn't see how it would, was grasping at straws.
>>
>> I finally avoided the problem by getting rid of the chained selects.  I
>> went
>> back to our older component that does the chaining with simple javascript
>> (stuffing all the possible selection lists into the html which works okay
>> if
>> they're not huge), so there's no ajax request on the first select.  The
>> second select does an onchange form submit.  Crude and a bit slower but it
>> works.
>>
>> In other words it stumped me.  Maybe some day someone else will see this
>> posting and have an insight.
>>
>>
>> On Fri, Feb 25, 2011 at 10:24 AM, Bryan Lewis<jbryanle...@gmail.com>
>>  wrote:
>>
>>  Nope.  In the failing cases, the ajax request did not arrive at my
>>> AppModule's request filter.  That's why the Select's onValueChanged()
>>> isn't
>>> getting called.  I don't think it's a case of Tapestry dropping the
>>> request
>>> after it gets it.
>>>
>>>
>>>
>>> On Fri, Feb 25, 2011 at 6:41 AM, Ulrich Stärk<u...@spielviel.de>  wrote:
>>>
>>>  Can you see the request hitting the server after the first zone's value
>>>> is
>>>> changed?
>>>>
>>>> Uli
>>>>
>>>> On 24.02.2011 23:43, Bryan Lewis wrote:
>>>>
>>>>> I've been trying to figure out a weird bug today, and before I lose the
>>>>> night over it I thought I'd ask the list.  I'm using the cool new
>>>>>
>>>> "chained
>>>>
>>>>> select" feature.  One Select has a zone, and triggers an
>>>>>
>>>> onValueChanged()
>>>>
>>>>> method that affects another Select.  It works fine on my machine and
>>>>>
>>>> when
>>>>
>>>>> most users try it.  When the first selection changes the server gets
>>>>> the
>>>>> method call and the zone updates, no problem.
>>>>>
>>>>> We have a few users in a remote office who access the application
>>>>>
>>>> through a
>>>>
>>>>> slightly slow connection to a Citrix server.  That is, the browser is
>>>>> actually running here (in the same network as the app server) and the
>>>>>
>>>> user
>>>>
>>>>> receives only screen updates.  Occasionally these users will see that
>>>>>
>>>> the
>>>>
>>>>> chained selects don't work at all.  I've debugged it a little (kinda
>>>>> difficult since I can't make it happen locally) and the first Select's
>>>>> method call doesn't happen.  I don't think it's only a case of slowness
>>>>>
>>>> -- I
>>>>
>>>>> waited about ten seconds.
>>>>>
>>>>> Does this ring any bells?  I can't see how the Citrix factor or the
>>>>> connection speed would have any effect.  The app server and browser are
>>>>>
>>>> in
>>>>
>>>>> the same network.  Other requests are working fine; the app has been
>>>>>
>>>> running
>>>>
>>>>> almost a year.  I have a periodic-update ajax request that successfully
>>>>> makes it to the server for the same user.
>>>>>
>>>>> So maybe I'm using the new feature incorrectly.
>>>>>
>>>>> .tml:
>>>>>
>>>>>     <t:zone t:id="recipientZone" update="show">
>>>>>       <br/>
>>>>>       <t:label for="carrierSelect">Recipients</t:label>
>>>>>       <table style="margin-left:124px;">
>>>>>         <tr>
>>>>>           <td>
>>>>>             <t:select t:id="carrierSelect"
>>>>>                       model="carrierModel"
>>>>>                       value="selectedCarrier"
>>>>>                       blankLabel="literal:Select a carrier first"
>>>>>                       zone="recipientZone"
>>>>>                       style="width:180px;"/>
>>>>>           </td>
>>>>>           <td>
>>>>>               <t:select t:id="recipientSelect"
>>>>>                         model="recipientModel"
>>>>>                         value="selectedRecipient"
>>>>>                         style="width:360px;"/>
>>>>>           </td>
>>>>>         </tr>
>>>>>       </table>
>>>>>     </t:zone>
>>>>>
>>>>>
>>>>> .java:
>>>>>
>>>>>     private final SelectModel carrierModel = new AbstractSelectModel()
>>>>>     {
>>>>>         // Omitting null-returning getOptionGroups() for simplicity
>>>>>
>>>>>         public List<OptionModel>  getOptions()
>>>>>         {
>>>>>             List<Company>  carriers = getModel().getCarriers();  //
>>>>>
>>>> sorted by
>>>>
>>>>> name
>>>>>             List<OptionModel>  options =
>>>>> CollFactory.newList(carriers.size());
>>>>>             for (Company carrier : carriers) {
>>>>>                 options.add(new
>>>>> OptionModelImpl(carrier.getCarrierShortName(), carrier));
>>>>>             }
>>>>>             return options;
>>>>>         }
>>>>>     };
>>>>>     public SelectModel getCarrierModel()
>>>>>     {
>>>>>         return carrierModel;
>>>>>     }
>>>>>
>>>>>     public Object onValueChangedFromCarrierSelect(Company carrier)
>>>>>     {
>>>>>         debug("-- onValueChangedFromCarrierSelect " +
>>>>> carrier.getCarrierShortName());
>>>>>         selectedCarrier = carrier;
>>>>>         return recipientZone.getBody();
>>>>>     }
>>>>>
>>>>>
>>>>> To be clear:  In the real app, the recipientSelect also has a zone
>>>>>
>>>> parameter
>>>>
>>>>> to update a third list.  I omitted it here because the bug happens
>>>>>
>>>> before
>>>>
>>>>> that.
>>>>>
>>>>> The only thing I can see that I'm doing different from the documented
>>>>> example is, my selects are in the same zone.  I'll try splitting them
>>>>> up
>>>>>
>>>> and
>>>>
>>>>> using a MultiZoneUpdate or some such.
>>>>>
>>>>> Thanks for any ideas.
>>>>>
>>>>>  ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>>>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>>>
>>>>
>>>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>

Reply via email to