This is an automated email from the ASF dual-hosted git repository.

piotrz pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git


The following commit(s) were added to refs/heads/develop by this push:
     new 4356ef9  Jewel Table: Fix issue where dataProvider=null throws 
exception
4356ef9 is described below

commit 4356ef9f1d75fce58f683f10929d74209fad73ea
Author: Piotr Zarzycki <[email protected]>
AuthorDate: Sun Jun 30 19:16:08 2019 +0200

    Jewel Table: Fix issue where dataProvider=null throws exception
    
    - In scenario where Jewel Table dataProvider is being set null and we are 
using one of the bead for updating table (RemoveTableRowForArrayListData) 
selectedItemProperty is throwing NPE, cause dataProvider itself is already null
---
 .../org/apache/royale/jewel/beads/models/TableModel.as    | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/models/TableModel.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/models/TableModel.as
index c36b429..5b58f3c 100644
--- 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/models/TableModel.as
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/models/TableModel.as
@@ -64,15 +64,20 @@ package org.apache.royale.jewel.beads.models
             if (value == _selectedItemProperty) return;
 
                        _selectedItemProperty = value;
-                       var n:int = dataProvider.length;
-                       for (var i:int = 0; i < n; i++)
+
+                       if (dataProvider)
                        {
-                               if (dataProvider.getItemAt(i) == selectedItem 
&& dataProvider.getItemAt(i)[labelField] == value)
+                               var n:int = dataProvider.length;
+                               for (var i:int = 0; i < n; i++)
                                {
-                                       selectedIndex = i;
-                                       break;
+                                       if(dataProvider.getItemAt(i) == 
selectedItem && dataProvider.getItemAt(i)[labelField] == value)
+                                       {
+                                               selectedIndex = i;
+                                               break;
+                                       }
                                }
                        }
+
                        dispatchEvent(new Event("selectedItemPropertyChanged"));
                }
 

Reply via email to