From 9df57f77c4ef6ecf60d0b823cda23ac80af44c31 Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Wed, 27 Jun 2007 07:20:53 +0000 Subject: [PATCH] bug found, test written, bug fixed SVN: 693 --- .../ch/systemsx/cisd/common/utilities/BeanUtils.java | 9 ++++++--- .../systemsx/cisd/common/utilities/BeanUtilsTest.java | 10 +++++++++- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/common/source/java/ch/systemsx/cisd/common/utilities/BeanUtils.java b/common/source/java/ch/systemsx/cisd/common/utilities/BeanUtils.java index b9e2e8002fd..1e91d31e6d9 100644 --- a/common/source/java/ch/systemsx/cisd/common/utilities/BeanUtils.java +++ b/common/source/java/ch/systemsx/cisd/common/utilities/BeanUtils.java @@ -280,10 +280,13 @@ public final class BeanUtils private static <T> T fillBean(Class<T> beanClass, Object sourceBean, AnnotationMap setterAnnotations, Converter converter) { + if (sourceBean == null) + { + return null; + } assert beanClass != null; - assert sourceBean != null; - assert setterAnnotations != null; - assert converter != null; + assert setterAnnotations != null : "undefined setter annotations for " + beanClass; + assert converter != null : "undefined converter for " + beanClass; try { diff --git a/common/sourceTest/java/ch/systemsx/cisd/common/utilities/BeanUtilsTest.java b/common/sourceTest/java/ch/systemsx/cisd/common/utilities/BeanUtilsTest.java index a89f99c71ad..ed90cbb6ded 100644 --- a/common/sourceTest/java/ch/systemsx/cisd/common/utilities/BeanUtilsTest.java +++ b/common/sourceTest/java/ch/systemsx/cisd/common/utilities/BeanUtilsTest.java @@ -687,6 +687,14 @@ public final class BeanUtilsTest } } + @Test + public void testFillComplexBeanWithNull() + { + final BeanWithBean1 b3 = new BeanWithBean1(); + final BeanWithBean2 b4 = BeanUtils.fillBean(BeanWithBean2.class, b3); + assertEquals(null, b4.getBean()); + } + @Test public void testFillComplexBean() { @@ -701,7 +709,7 @@ public final class BeanUtilsTest final Bean2a b2 = b4.getBean(); assertBeansAreEqual("Bean comparison", b1, b2); } - + public static class BeanWithBeanArray1 { private Bean1a[] bean; -- GitLab