From ad33ee1f151ef3e7c6fce90834aecd807a80c81e Mon Sep 17 00:00:00 2001
From: ribeaudc <ribeaudc>
Date: Wed, 5 Dec 2007 08:16:31 +0000
Subject: [PATCH] fix: - '(Object[]) null' does not mean '(Object) null'.

SVN: 2936
---
 .../java/ch/systemsx/cisd/common/utilities/ClassUtils.java  | 3 ++-
 .../ch/systemsx/cisd/common/utilities/ClassUtilsTest.java   | 6 +++---
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/common/source/java/ch/systemsx/cisd/common/utilities/ClassUtils.java b/common/source/java/ch/systemsx/cisd/common/utilities/ClassUtils.java
index a366c22fc74..f539f121acf 100644
--- a/common/source/java/ch/systemsx/cisd/common/utilities/ClassUtils.java
+++ b/common/source/java/ch/systemsx/cisd/common/utilities/ClassUtils.java
@@ -165,7 +165,8 @@ public final class ClassUtils
                     + "' can not be instanciated as it is an interface.";
             assert superClazz.isAssignableFrom(clazz) : "Class '" + clazz.getName() + "' does not implements/extends '"
                     + superClazz.getName() + "'.";
-            if (initargs == null)
+            // (Object[]) null ||Ê(Object) null
+            if (initargs == null || (initargs.length == 1 && initargs[0] == null))
             {
                 return createInstance(clazz);
             }
diff --git a/common/sourceTest/java/ch/systemsx/cisd/common/utilities/ClassUtilsTest.java b/common/sourceTest/java/ch/systemsx/cisd/common/utilities/ClassUtilsTest.java
index 751600c1d4e..9fc609a1e25 100644
--- a/common/sourceTest/java/ch/systemsx/cisd/common/utilities/ClassUtilsTest.java
+++ b/common/sourceTest/java/ch/systemsx/cisd/common/utilities/ClassUtilsTest.java
@@ -82,7 +82,7 @@ public final class ClassUtilsTest
     @Test
     public void testCreateWithDefaultConstructor()
     {
-        CharSequence cs = ClassUtils.create(CharSequence.class, StringBuffer.class.getName(), (Object) null);
+        CharSequence cs = ClassUtils.create(CharSequence.class, StringBuffer.class.getName(), (Object[]) null);
         assertTrue(cs instanceof StringBuffer);
         assertEquals(0, cs.length());
     }
@@ -132,7 +132,7 @@ public final class ClassUtilsTest
     {
         try
         {
-            ClassUtils.create(Float.class, Integer.class.getName(), (Object) null);
+            ClassUtils.create(Float.class, Integer.class.getName(), (Object[]) null);
             fail("AssertionError expected.");
         } catch (AssertionError e)
         {
@@ -145,7 +145,7 @@ public final class ClassUtilsTest
     {
         try
         {
-            ClassUtils.create(Float.class, CharSequence.class.getName(), (Object) null);
+            ClassUtils.create(Float.class, CharSequence.class.getName(), (Object[]) null);
             fail("AssertionError expected.");
         } catch (AssertionError e)
         {
-- 
GitLab