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