Re: "You backtracked too far" error after closing AjaxModalDialog and clicking on a link on the page
Re: "You backtracked too far" error after closing AjaxModalDialog and clicking on a link on the page
- Subject: Re: "You backtracked too far" error after closing AjaxModalDialog and clicking on a link on the page
- From: John & Kim Larson <email@hidden>
- Date: Wed, 13 Jul 2011 22:30:38 -0500
At some point shoulda's become needta's after you've done them that way enough I guess. :-/
Even if you were going from an ID of 22 to 8, things should be okay since that is within the bounds of the backtrack cache of 30 that your error is complaining about. Is it possible you've corrupted your page by changing some variable a la the classic repetition with a checkbox gotcha? I mean it seems like a page cache issue, but it also seems like of those "WebObjects is broken! ... No wait, I'm broken." issues.
John A. Larson
President
Precision Instruments, Inc.
Ph: 847-824-4194
Fax: 866-240-7104
Sent from my iPhone
On Jul 13, 2011, at 5:24 PM, Chuck Hill <email@hidden> wrote:
> They don't need to be, it is good style IMO to make them void if they don't need to return anything.
>
> Chuck
>
>
>
> On 2011-07-13, at 4:58 PM, John & Kim Larson wrote:
>
>> 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 <email@hidden> 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 (email@hidden)
>>> Help/Unsubscribe/Update your Subscription:
>>>
>>> This email sent to email@hidden
>> _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Webobjects-dev mailing list (email@hidden)
>> Help/Unsubscribe/Update your Subscription:
>>
>> This email sent to email@hidden
>
> --
> 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 (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden