Skip to main content

Bug Tracker

Side navigation

#4080 closed bug (invalid)

Opened February 05, 2009 10:15PM UTC

Closed February 28, 2009 08:04PM UTC

Infinite recursion in speed method

Reported by: wichert Owned by:
Priority: major Milestone: 1.3.2
Component: core Version: 1.3.1
Keywords: Cc:
Blocked by: Blocking:
Description

I have a reasonably simple overlay routine which inserts a few divs with a basic animation, and can remove then again after a fade. After upgrading to 1.3.1 this only works once: after trying to insert the divs in the DOM and reveal them a second time I get an infinite recursion in this code in jquery-1.3.1.js (lines 3847 to 3852):

		opt.complete = function(){
			if ( opt.queue !== false )
				jQuery(this).dequeue();
			if ( jQuery.isFunction( opt.old ) )
				opt.old.call( this );
		};

opt.old.call is the same complete function, so this becomes an infinite recursion.

Attachments (0)
Change History (5)

Changed February 05, 2009 10:48PM UTC by wichert comment:1

Further debugging shows that this statement is the culprit:

$(overlay).animate(opts.show_animate_params, opts.show_animate_options);

With the options defined as follows:

    show_animate_params : { opacity: 1.0 },
    show_animate_options : { duration: "slow" },
overlay
is a collection containing a div element with about 20 child nodes.

Changed February 05, 2009 10:49PM UTC by wichert comment:2

I retested this with jquery 1.2.6: this shows the exact same problem.

Changed February 05, 2009 11:40PM UTC by dmethvin comment:3

Can you provide a simple test case? Often when I see this it is due to event bubbling causing the recursion; the test case would tell us a lot.

Changed February 06, 2009 08:58AM UTC by wichert comment:4

I'll try to create one. In the meantime here is a page which shows this problem: http://demo.simplon.biz/Plone-UI-2009/Prototype/trunk/screens/index-editBar.html

You can trigger the problem by clicking on the hand-and-pencil icon in the top right and then clicking on the cancel button that appears at the top right. The second time you do that you'll get the infinite recursion.

Changed February 28, 2009 08:04PM UTC by dmethvin comment:5

resolution: → invalid
status: newclosed

Please reopen with a test case if the problem still exists.