[jboss-cvs] JBossAS SVN: r86635 - in projects/jboss-man/trunk/metatype/src: test/java/org/jboss/test/metatype/values/factory/test and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Apr 2 02:31:06 EDT 2009


Author: scott.stark at jboss.org
Date: 2009-04-02 02:31:06 -0400 (Thu, 02 Apr 2009)
New Revision: 86635

Modified:
   projects/jboss-man/trunk/metatype/src/main/java/org/jboss/metatype/plugins/values/DefaultMetaValueFactory.java
   projects/jboss-man/trunk/metatype/src/test/java/org/jboss/test/metatype/values/factory/test/UnwrapValueUnitTestCase.java
Log:
JBMAN-71, Unwrapping null primitive SimpleValues should return non-null

Modified: projects/jboss-man/trunk/metatype/src/main/java/org/jboss/metatype/plugins/values/DefaultMetaValueFactory.java
===================================================================
--- projects/jboss-man/trunk/metatype/src/main/java/org/jboss/metatype/plugins/values/DefaultMetaValueFactory.java	2009-04-02 06:14:25 UTC (rev 86634)
+++ projects/jboss-man/trunk/metatype/src/main/java/org/jboss/metatype/plugins/values/DefaultMetaValueFactory.java	2009-04-02 06:31:06 UTC (rev 86635)
@@ -598,7 +598,15 @@
       if (metaType.isSimple())
       {
          Serializable value = ((SimpleValue)metaValue).getValue();
-         return getValue(metaType, type, value);
+         Object v = getValue(metaType, type, value);
+         if(v == null && metaType.isPrimitive())
+         {
+            if (type == null)
+               type = getTypeInfo(metaType, metaValue);
+            return mapNullToPrimitive(type);
+         }
+          else
+            return v; 
       }
       else if (metaType.isEnum())
       {
@@ -614,7 +622,7 @@
       {
          ArrayValue arrayValue = (ArrayValue)metaValue;
          if (type == null)
-            type= getTypeInfo(metaType, arrayValue.getValue());
+            type = getTypeInfo(metaType, arrayValue.getValue());
          Object array = newArrayInstance(type, arrayValue.getLength());
          for (int i = 0; i < Array.getLength(array); i++)
          {

Modified: projects/jboss-man/trunk/metatype/src/test/java/org/jboss/test/metatype/values/factory/test/UnwrapValueUnitTestCase.java
===================================================================
--- projects/jboss-man/trunk/metatype/src/test/java/org/jboss/test/metatype/values/factory/test/UnwrapValueUnitTestCase.java	2009-04-02 06:14:25 UTC (rev 86634)
+++ projects/jboss-man/trunk/metatype/src/test/java/org/jboss/test/metatype/values/factory/test/UnwrapValueUnitTestCase.java	2009-04-02 06:31:06 UTC (rev 86635)
@@ -36,6 +36,8 @@
 import junit.framework.Test;
 
 import org.jboss.metatype.api.values.MetaValue;
+import org.jboss.metatype.api.values.SimpleValue;
+import org.jboss.metatype.api.values.SimpleValueSupport;
 import org.jboss.test.metatype.values.factory.support.SimpleCompositeInterface;
 import org.jboss.test.metatype.values.factory.support.TestEnum;
 import org.jboss.test.metatype.values.factory.support.TestGeneric;
@@ -79,7 +81,22 @@
       checkSingle(new Date(), true);
       checkSingle(new Date(), false);
    }
+   
+   public void testSimpleNullUnwrap()
+   {
+      SimpleValueSupport nullInt = (SimpleValueSupport) SimpleValueSupport.wrap(1);
+      nullInt.setValue(null);
+      Integer i = (Integer) this.unwrapMetaValue(nullInt);
+      assertNotNull(i);
+      assertEquals(new Integer(0), i);
 
+      SimpleValueSupport nullBoolean = (SimpleValueSupport) SimpleValueSupport.wrap(true);
+      nullBoolean.setValue(null);
+      Boolean b = (Boolean) this.unwrapMetaValue(nullBoolean);
+      assertNotNull(b);
+      assertEquals(Boolean.FALSE, b);
+   }
+
    public void testEnumUnwrap() throws Exception
    {
       checkSingle(TestEnum.ONE, true);




More information about the jboss-cvs-commits mailing list