Wait! Looks like we don't have enough information to add this to bug database. Please follow this template bug format.
  1. #1
    Ext JS Premium Member westy's Avatar
    Join Date
    Feb 2009
    Location
    Bath, UK
    Posts
    894
    Vote Rating
    39
    westy is a jewel in the rough westy is a jewel in the rough westy is a jewel in the rough

      0  

    Default [4.0.0] Bug in AbstractView.updateIndexes

    [4.0.0] Bug in AbstractView.updateIndexes


    Hi,

    Believe I've found an issue in updateIndexes.
    It's seems to be getting called when calling removeAll on a tree node, during a load (when clearOnLoad is true).

    Anyway, code:
    PHP Code:
        updateIndexes : function(startIndexendIndex) {
            var 
    ns this.all.elements,
                
    records this.store.getRange();
            
    startIndex startIndex || 0;
            
    endIndex endIndex || ((endIndex === 0) ? : (ns.length 1));
            for(var 
    startIndex<= endIndexi++){
                
    ns[i].viewIndex i;
                
    ns[i].viewRecordId records[i].internalId;
                if (!
    ns[i].boundView) {
                    
    ns[i].boundView this.id;
                }
            }
        }, 
    The issue is that sometimes records[i] is outside of the bounds of the collection.
    Not entirely sure why, or what this method is meant to be doing, but it could probably be a bit more defensive I think.

    Cheers,
    Westy

  2. #2
    Ext JS Premium Member stevil's Avatar
    Join Date
    Nov 2007
    Location
    Denver, CO
    Posts
    1,045
    Vote Rating
    9
    stevil will become famous soon enough

      0  

    Default


    I've seen this once before, and I can't remember how I got around it - but if ns (this.all.elements) has length 0, and both startIndex and endIndex are 0, that would happen...

  3. #3
    Ext JS Premium Member westy's Avatar
    Join Date
    Feb 2009
    Location
    Bath, UK
    Posts
    894
    Vote Rating
    39
    westy is a jewel in the rough westy is a jewel in the rough westy is a jewel in the rough

      0  

    Default


    I'm generally seeing it on the last child node... have kind of worked around it for now, but it's leaves the UI in a mess.

    Basically overridden my tree view's updateIndexes, and put a try..catch around callParent; meaning I get nodes staying in the tree, but at least I can keep testing, which is sufficient for my current focus.

    Cheers

  4. #4
    Ext JS Premium Member westy's Avatar
    Join Date
    Feb 2009
    Location
    Bath, UK
    Posts
    894
    Vote Rating
    39
    westy is a jewel in the rough westy is a jewel in the rough westy is a jewel in the rough

      0  

    Default


    My override for the moment:
    PHP Code:
        updateIndexes : function(startIndexendIndex) {
            var 
    ns this.all.elements,
                
    records this.store.getRange();
            
    startIndex startIndex || 0;
            
    endIndex endIndex || ((endIndex === 0) ? : (ns.length 1));
            for(var 
    startIndex<= endIndexi++){
                
    ns[i].viewIndex i;
                
    ns[i].viewRecordId records.length >= records[i].internalId undefined;
                if (!
    ns[i].boundView) {
                    
    ns[i].boundView this.id;
                }
            }
        }, 
    But I suspect there's some underlying problem causing this.store.getRange to not return a set that matches this.all.elements length.

    Cheers,
    Westy

  5. #5
    Ext JS Premium Member stevil's Avatar
    Join Date
    Nov 2007
    Location
    Denver, CO
    Posts
    1,045
    Vote Rating
    9
    stevil will become famous soon enough

      0  

    Default


    There are definitely some things that are in need of null and range checking...

    stevil

  6. #6
    Ext JS Premium Member
    Join Date
    Nov 2010
    Location
    Rudolstadt, Germany
    Posts
    52
    Vote Rating
    0
    astuteq is on a distinguished road

      0  

    Default


    Hello,
    I have also an issue with AbstractView.updateIndexes / reloading a TreeStore.

    I discovered a problem when reloading a TreeStore quick successive order.
    Here is my store configuration:

    PHP Code:
    Ext.define('Rekuma.store.Reseller.Tree', {
        
    extend'Ext.data.TreeStore',
        
    model'Rekuma.model.TreeNode',
        
    autoLoadtrue,
        
    clearOnLoadtrue,
        
    proxy:  {
                    
    type'ajax',
                    
    url 'menu/reseller',
                    
    actionMethods: {
                        
    read   'POST'
                    
    },
                    
    extraParams: {
                        
    category'reseller'
                    
    }
                }
            }
        ); 
    This is what I do in my controller:
    PHP Code:
    Ext.define('Rekuma.controller.Navigation', {
        
    extend'Ext.app.Controller',
        
    views: [
            
    'navigation.PrimaryTreePanel'
        
    ],
        
    stores: [
            
    'Reseller.Tree'
        
    ],
        
    init: function() {

            
    this.control({
                
    'viewport > panel > primarytreepanel': {
                    
    selectionchangethis.selectionChanged
                
    },
                
    'viewport > panel > primarytreepanel > toolbar > button': {
                    
    clickthis.refresh
                
    }
            });
        },
        
    selectionChanged: function (viewselections){
        },
        
    refresh: function() {
            
    this.getResellerTreeStore().load();
        }
    }); 
    Everything works fine as long as I press the refresh button slowly.
    If I load the store in a quick, successive order, I get the message:
    Code:
    TypeError: Result of expression 'records[i]' [undefined] is not an object. AbstractView.js:492
    Also, I see TreeNodes twice.
    I get the same behavior on every click, if I set clearOnLoad: false

    Stefan

  7. #7
    Ext JS Premium Member westy's Avatar
    Join Date
    Feb 2009
    Location
    Bath, UK
    Posts
    894
    Vote Rating
    39
    westy is a jewel in the rough westy is a jewel in the rough westy is a jewel in the rough

      1  

    Default


    Quote Originally Posted by westy View Post
    My override for the moment:
    PHP Code:
        updateIndexes : function(startIndexendIndex) {
            var 
    ns this.all.elements,
                
    records this.store.getRange();
            
    startIndex startIndex || 0;
            
    endIndex endIndex || ((endIndex === 0) ? : (ns.length 1));
            for(var 
    startIndex<= endIndexi++){
                
    ns[i].viewIndex i;
                
    ns[i].viewRecordId records.length >= records[i].internalId undefined;
                if (!
    ns[i].boundView) {
                    
    ns[i].boundView this.id;
                }
            }
        }, 
    But I suspect there's some underlying problem causing this.store.getRange to not return a set that matches this.all.elements length.

    Cheers,
    Westy
    Whoops, bug in this.

    Fixed:
    PHP Code:
        updateIndexes : function(startIndexendIndex) {
            var 
    ns this.all.elements,
                
    records this.store.getRange();
            
    startIndex startIndex || 0;
            
    endIndex endIndex || ((endIndex === 0) ? : (ns.length 1));
            for(var 
    startIndex<= endIndexi++){
                
    ns[i].viewIndex i;
                
    ns[i].viewRecordId = ((records.length i) && records[i]) ? records[i].internalId undefined;
                if (!
    ns[i].boundView) {
                    
    ns[i].boundView this.id;
                }
            }
        }, 

  8. #8
    Sencha User
    Join Date
    Mar 2010
    Posts
    41
    Vote Rating
    0
    karnak is on a distinguished road

      0  

    Default


    I am still getting this error in 4.0.2. Your fix seems to work great (as I am no longer getting errors in my console window). Are the Sencha team aware of this?

  9. #9
    Ext JS Premium Member stevil's Avatar
    Join Date
    Nov 2007
    Location
    Denver, CO
    Posts
    1,045
    Vote Rating
    9
    stevil will become famous soon enough

      0  

    Default


    Quote Originally Posted by karnak View Post
    I am still getting this error in 4.0.2. Your fix seems to work great (as I am no longer getting errors in my console window). Are the Sencha team aware of this?
    That's a good question. I've been assured that this is the correct forum for bug reports, and that Sencha WILL get to all of them, despite the current backlog. I take them at their word. It's a big backlog, though!

    stevil

  10. #10
    Ext JS Premium Member westy's Avatar
    Join Date
    Feb 2009
    Location
    Bath, UK
    Posts
    894
    Vote Rating
    39
    westy is a jewel in the rough westy is a jewel in the rough westy is a jewel in the rough

      0  

    Default


    Well, I did post this what seems like ages ago now!

    I've started posting a few issues in the premium forums since stands a better chance of getting spotted. Shame really, since the bugs and help forums used to see a lot more activity from the devs, especially during the developer previews.

    I get the impression Ext 4 is 'done' now though, so would stick with overriding things yourself if I were you

    Cheers,
    Westy
    Product Architect
    Altus Ltd.

Turkiyenin en sevilen filmlerinin yer aldigi xnxx internet sitemiz olan ve porn sex tarzi bir site olan mobil porno izle sitemiz gercekten dillere destan bir durumda herkesin sevdigi bir site olarak tarihe gececege benziyor. Sitenin en belirgin ozelliklerinden birisi de Turkiyede gercekten kaliteli ve muntazam, duzenli porno izle siteleri olmamasidir. Bu yuzden iste. Ayrica en net goruntu kalitesine sahip adresinde yayinlanmaktadir. Mesela diğer sitelerimizden bahsedecek olursak, en iyi hd porno video arşivine sahip bir siteyiz. "The Best anal porn videos and slut anus, big asses movies set..." hd porno faketaxi