1 Attachment(s)
BUG FIX: src/tree/View.js (patch attached)
REQUIRED INFORMATION
Ext version tested:Browser versions tested against:- Chrome 24.0.1312.57 m
- IE 8.0.6
- FF 18.0.2 (firebug 1.12.0a.2 installed)
- Safari 5.1.7
Description:Steps to reproduce the problem:- Create app with window that get's opened on button click
- In the window, display a tree panel that is read from an ajax source
- Run app, and open window, then close it.
- Re-open Window.
- Error from Chrome: Uncaught TypeError: Cannot call method 'indexOf' of null ext-all-dev.js:164027
The full chrome stack trace is:
1. Uncaught TypeError: Cannot call method 'indexOf' of null ext-all-dev.js:164027
1. Ext.define.onBeforeFillext-all-dev.js:164027
2. Ext.define.fireext-all-dev.js:14999
3. continueFireEventext-all-dev.js:28029
4. fireEventext-all-dev.js:28000
5. Ext.define.fillNodeext-all-dev.js:96156
6. Ext.define.onProxyLoadext-all-dev.js:96205
7. Ext.define.processResponseext-all-dev.js:87982
8. (anonymous function)ext-all-dev.js:88471
9. Ext.apply.callbackext-all-dev.js:11434
10. Ext.define.onCompleteext-all-dev.js:37132
11. Ext.define.onStateChangeext-all-dev.js:37069
12. (anonymous function)ext-all-dev.js:3000
Possible fix:
The solution requires a fix to Ext.tree.View (we have attached a patch with this report). Bottom line, the initComponent method of Ext.tree.View registers listeners using the unmanaged on() call for both it's own store and the treepanel's store. It should instead using the addManagedListner version -- ie: mon().
What appears to be happening is that even AFTER the window containing the treepanel is closed, the 'beforefill' event handler is still registered. The second time the window is created, there are now two 'beforefill' event handlers, but the first registered handler refers to a view that is no longer valid. When the event fires, it try's to dereference a 'null' reference which causes the exception.
Operating System:- Windows 7 Pro
- Windows 2003 Server