Jaroslav Snajdr
18 Dec 2009, 4:39 AM
Ext version tested:
Ext 3.0.3
Ext 3.1.0
Browser versions tested against:
FF3 (firebug 1.3.0.10 installed)
Operating System:
Snow Leopard
Description:
When ContainerLayout is being resized, it creates a DelayedTask to call method runLayout 50ms later.
However, when the component with this layout is destroyed before the task is run, the runLayout method is called on already destroyed object. This leads to a JavaScript exception about undefined DOM elements somewhere down the call stack. (Or some other error - quite random things can happen.)
We discovered the bug in our application when solving bug report like "when I click around fast enough in the app navigation, sooner or later I always get a JS error"
Possible fix:
Cancel the resizeTask in the ContainerLayout.destroy method:
destroy: function() {
if (this.resizeTask) {
this.resizeTask.cancel();
}
/* ... rest of the method ... */
}
Ext 3.0.3
Ext 3.1.0
Browser versions tested against:
FF3 (firebug 1.3.0.10 installed)
Operating System:
Snow Leopard
Description:
When ContainerLayout is being resized, it creates a DelayedTask to call method runLayout 50ms later.
However, when the component with this layout is destroyed before the task is run, the runLayout method is called on already destroyed object. This leads to a JavaScript exception about undefined DOM elements somewhere down the call stack. (Or some other error - quite random things can happen.)
We discovered the bug in our application when solving bug report like "when I click around fast enough in the app navigation, sooner or later I always get a JS error"
Possible fix:
Cancel the resizeTask in the ContainerLayout.destroy method:
destroy: function() {
if (this.resizeTask) {
this.resizeTask.cancel();
}
/* ... rest of the method ... */
}