File tree 2 files changed +27
-1
lines changed
modules/javafx.controls/src
main/java/javafx/scene/control
test/java/test/javafx/scene/control
2 files changed +27
-1
lines changed Original file line number Diff line number Diff line change @@ -579,7 +579,7 @@ public static int getNodeLevel(TreeItem<?> node) {
579
579
@ Override public Boolean call (TreeTableView table ) {
580
580
try {
581
581
TreeItem rootItem = table .getRoot ();
582
- if (rootItem == null ) return false ;
582
+ if (rootItem == null || rootItem . getChildren (). isEmpty () ) return false ;
583
583
584
584
TreeSortMode sortMode = table .getSortMode ();
585
585
if (sortMode == null ) return false ;
Original file line number Diff line number Diff line change @@ -753,6 +753,32 @@ private void verifySelectionAfterPermutation() {
753
753
treeTableView .sort ();
754
754
}
755
755
756
+ @ Test public void testNoIOOBEWhenSortingAfterSelectAndClearRootChildren () {
757
+ TreeTableView <String > ttv = new TreeTableView <>();
758
+ TreeItem <String > root = new TreeItem <>("root" );
759
+ TreeItem <String > child = new TreeItem <>("child" );
760
+ root .getChildren ().add (child );
761
+ root .setExpanded (true );
762
+ ttv .setRoot (root );
763
+ ttv .setShowRoot (false );
764
+
765
+ TreeTableColumn <String , String > ttc = new TreeTableColumn <>("Column" );
766
+ ttv .getSortOrder ().add (ttc );
767
+
768
+ ttv .getSelectionModel ().select (0 );
769
+ root .getChildren ().remove (0 );
770
+ ControlTestUtils .runWithExceptionHandler (() -> {
771
+ ttv .sort ();
772
+ });
773
+ }
774
+
775
+ @ Test public void testNPEWhenRootItemIsNull () {
776
+ TreeTableView <String > ttv = new TreeTableView <>();
777
+ ControlTestUtils .runWithExceptionHandler (() -> {
778
+ ttv .sort ();
779
+ });
780
+ }
781
+
756
782
@ Test public void testChangingSortPolicyUpdatesItemsList () {
757
783
TreeTableColumn <String , String > col = initSortTestStructure ();
758
784
col .setSortType (DESCENDING );
You can’t perform that action at this time.
0 commit comments