I thought your action methods had to be void methods for Ajax actions, 
otherwise this happens. ?

jal

Sent from my iPhone

On Jul 12, 2011, at 10:58 PM, Chuck Hill <ch...@global-village.net> wrote:

> On Jul 12, 2011, at 4:29 PM, Ricardo J. Parada wrote:
>> On Jul 12, 2011, at 5:53 PM, Chuck Hill wrote:
>>> On Jul 12, 2011, at 2:45 PM, Ricardo J. Parada wrote:
>>>> On Jul 12, 2011, at 4:52 PM, Chuck Hill wrote:
>>>> 
>>>>> Hi Ricardo,
>>>>> 
>>>>> On Jul 12, 2011, at 1:35 PM, Ricardo J. Parada wrote:
>>>>>> 
>>>>>> Does anybody have an idea what could be causing this problem?  The user 
>>>>>> clicks on an AjaxModalDialogOpener which opens the dialog.  Then the 
>>>>>> user does a whole bunch of stuff in the dialog that involves many clicks
>>>>> 
>>>>> Does it still happen if they don't make so many clicks?
>>>> 
>>>> If they make a few clicks then it works okay.
>>>> 
>>>> 
>>>>>> then finally clicks a DONE link to close the dialog.
>>>>> 
>>>>> Are all of these links and clicks Ajax actions?
>>>>> 
>>>> 
>>>> Yes, they are clicking on links generated by AjaxSubmitButton components 
>>>> to be exact.  :-)
>>> 
>>> And you are certain that there are no /wo/ or /wa/ requests mixed in here?
>> 
>> I set this property in my Properties.dev:
>> 
>> log4j.logger.er.extensions.ERXApplication.RequestHandling=DEBUG
>> 
>> and then I looked at all the uri's of the requests coming in.  They have 
>> /ajax/ in there and when the dialog first comes up I see a few /_wr_/ and I 
>> guess the browser caches those since I don't see requests for those anymore 
>> on subsequent requests after the dialog is displayed.
> 
> Those should be OK, they won't affect the page caches.
> 
> 
>> All the requests for the "many clicks" I mentioned have /ajax/ in them.  I 
>> don't see any /wo/ requests mixed in.
>> 
>> Also I set a breakpoint in ERXAjaxSession.java at the only place it calls 
>> super.savePage() where I assume the current page would be saved but I never 
>> hit the breakpoint.  I would think that regular component requests would be 
>> generating new context IDs and therefore saving the page in the cache for 
>> those context IDs.  But I don't see the page getting saved.  :-/
> 
> Yeah, that is what I would expect too.
> 
> 
>>>>>> The dialog has a closeUpdateContainerID bound with the id of an ajax 
>>>>>> update container to refresh, which it does refresh upon closing the 
>>>>>> dialog.  But then the user clicks on a link on the page that is outside 
>>>>>> the refreshed AjaxUpdateContainer and the app displays the error "You 
>>>>>> backtracked too far.  The application backtracking limit of 30 has been 
>>>>>> exceeded."
>>>>> 
>>>>> Ajax links or regular component actions links?  I do what seems to be the 
>>>>> same thing (except maybe the "does a whole bunch of stuff in the dialog") 
>>>>> and have not had any problems.
>>>>> 
>>>> 
>>>> They are regular component action links.  The context ID for which the 
>>>> page is being restored is 22.
>>> 
>>> The original URL is 21?
>>> 
>> 
>> Well, I just put in there a <wo:link string="test" action="$test"/> and by 
>> inspecting that link after I close the ajax modal dialog and the update 
>> container refreshes the href for the link is:
>> 
>> http://192.168.1.9:53295/cgi-bin/WebObjects/Phynance.woa/wo/EmqPpwSYBiOiS7PPSLDXzw/8.0.0.9.1.1.13.1.5.1.2.1.1.3.51
>> 
>> and clicking that generates the "You backtracked too far" error.
> 
> What is the context ID shown in the browser's location URL?
> 
> 
>>>>> The key to tracking this down is to know if it is the Ajax or the regular 
>>>>> page cache that is missing the component.
>>>>> 
>>>> 
>>>> I'm stepping through the restorePageForContextID() in ERXAjaxSession.java 
>>>> but I'm not sure what to look for.
>>> 
>>> 
>>> Sorry, I just meant if the URL that caused the error was a /ajax/ or /wo/ 
>>> URL.  It sounds like a /wo/ URL so that suggests to me that something in 
>>> your dialog is generating /wo/ or /wa/ requests that are pushing the page 
>>> out of the standard page cache.
>> 
>> I did not see any /wo/ nor /wa/ requests.  They are all /ajax/ requests.
>> 
>> Maybe I'll try to create a test Wonder app with an ajax modal dialog with a 
>> single ajax link in it that displays the current time when clicked... Then I 
>> can click it many many times.  Then close the dialog and then click on a 
>> link on the page afterwards to see if I can reproduce.
> 
> I'd be interested if you can reproduce it.  The only think that I can think 
> of is that the Ajax code is getting confused and using the regular page 
> cache.  But then I would expect to see calls to super.savePage.
> 
> The only other thing that I can think of is that the session is getting 
> switched, but with the session in the URL that should not happen.
> 
> 
> Chuck
> 
> -- 
> Chuck Hill             Senior Consultant / VP Development
> 
> Practical WebObjects - for developers who want to increase their overall 
> knowledge of WebObjects or who are trying to solve specific problems.    
> http://www.global-village.net/products/practical_webobjects
> 
> 
> 
> 
> 
> 
> 
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/webobjects-dev/the_larsons%40mac.com
> 
> This email sent to the_lars...@mac.com
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to