diff --git a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/util/MutableTreeModel.java b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/util/MutableTreeModel.java index 05d855214..91472722e 100644 --- a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/util/MutableTreeModel.java +++ b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/util/MutableTreeModel.java @@ -172,6 +172,8 @@ public class MutableTreeModel extends AbstractTreeModel { } private void add(Node parent, Integer position, List> children) { + if (children.isEmpty()) + return; int indexFrom = position == null ? parent.children.size() : position; int indexTo = indexFrom + children.size() - 1; parent.addAll(position, children); diff --git a/navalplanner-gantt-zk/src/test/java/org/zkoss/ganttz/util/MutableTreeModelTest.java b/navalplanner-gantt-zk/src/test/java/org/zkoss/ganttz/util/MutableTreeModelTest.java index 20a4ff7e3..e3836d5d3 100644 --- a/navalplanner-gantt-zk/src/test/java/org/zkoss/ganttz/util/MutableTreeModelTest.java +++ b/navalplanner-gantt-zk/src/test/java/org/zkoss/ganttz/util/MutableTreeModelTest.java @@ -236,6 +236,21 @@ public class MutableTreeModelTest { assertThat(model.getChildCount(model.getRoot()), equalTo(2)); } + @Test + public void addingAnEmptyListOfElementsDontDoNothing() { + MutableTreeModel model = MutableTreeModel.create(Prueba.class); + final List events = new ArrayList(); + model.addTreeDataListener(new TreeDataListener() { + + @Override + public void onChange(TreeDataEvent event) { + events.add(event); + } + }); + model.add(model.getRoot(), new ArrayList()); + assertThat(events.size(), equalTo(0)); + } + @Test public void aNodeCanBeRemoved() { MutableTreeModel model = MutableTreeModel.create(Prueba.class);