Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDirk Fauth2022-06-03 09:42:16 +0000
committerDirk Fauth2022-06-03 09:42:16 +0000
commit33b78c3a31ea524a048681fef9095e55ccfbd121 (patch)
treef09bafcf0f4a38290c81b9d7d4dc31f6c621baa5
parentcd7b01258cdd4db372369cb919e0e87d011a380d (diff)
downloadorg.eclipse.nebula.widgets.nattable-33b78c3a31ea524a048681fef9095e55ccfbd121.tar.gz
org.eclipse.nebula.widgets.nattable-33b78c3a31ea524a048681fef9095e55ccfbd121.tar.xz
org.eclipse.nebula.widgets.nattable-33b78c3a31ea524a048681fef9095e55ccfbd121.zip
Bug 579303 - HierarchicalHelper dumps parent if children collection is
empty Signed-off-by: Dirk Fauth <dirk.fauth@googlemail.com> Change-Id: Ie31f4a49662c2557c89ff57052be5a00599cc0a3
-rw-r--r--org.eclipse.nebula.widgets.nattable.core.test/src/org/eclipse/nebula/widgets/nattable/hierarchical/HierarchicalTest.java22
-rw-r--r--org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hierarchical/HierarchicalHelper.java4
2 files changed, 23 insertions, 3 deletions
diff --git a/org.eclipse.nebula.widgets.nattable.core.test/src/org/eclipse/nebula/widgets/nattable/hierarchical/HierarchicalTest.java b/org.eclipse.nebula.widgets.nattable.core.test/src/org/eclipse/nebula/widgets/nattable/hierarchical/HierarchicalTest.java
index df9c59d2..f3d4117d 100644
--- a/org.eclipse.nebula.widgets.nattable.core.test/src/org/eclipse/nebula/widgets/nattable/hierarchical/HierarchicalTest.java
+++ b/org.eclipse.nebula.widgets.nattable.core.test/src/org/eclipse/nebula/widgets/nattable/hierarchical/HierarchicalTest.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2018, 2020 Dirk Fauth.
+ * Copyright (c) 2018, 2022 Dirk Fauth.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
@@ -261,4 +261,24 @@ public class HierarchicalTest {
}
+ @Test
+ public void testCreationWithEmptyChildCollection() {
+ List<Car> input = new ArrayList<>();
+
+ Car car1 = new Car("BMW", "3er");
+ car1.setMotors(new ArrayList<Motor>());
+
+ Car car = new Car("Mercedes", "C Klasse");
+ Motor motor1 = new Motor("C320", "160", "KW", 250);
+ Motor motor2 = new Motor("C200", "100", "KW", 215);
+ car.setMotors(Arrays.asList(motor1, motor2));
+
+ input.add(car1);
+ input.add(car);
+
+ List<HierarchicalWrapper> result = HierarchicalHelper.deNormalize(input, false, Arrays.asList(CarService.getPropertyNames()));
+
+ assertEquals(3, result.size());
+ }
+
}
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hierarchical/HierarchicalHelper.java b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hierarchical/HierarchicalHelper.java
index 45f3f62e..5620bce5 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hierarchical/HierarchicalHelper.java
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hierarchical/HierarchicalHelper.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2018, 2020 Dirk Fauth.
+ * Copyright (c) 2018, 2022 Dirk Fauth.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
@@ -165,7 +165,7 @@ public final class HierarchicalHelper {
if (level < nested.length) {
Object child = getDataValue(parent.getObject(level), nested[level], propertyDescriptorMap);
- if (child instanceof Collection<?>) {
+ if (child instanceof Collection<?> && !((Collection<?>) child).isEmpty()) {
ArrayList<HierarchicalWrapper> result = new ArrayList<>();
Collection<?> children = (Collection<?>) child;

Back to the top