[jboss-cvs] JBossAS SVN: r86637 - in projects/jboss-man/branches/Branch_2_1/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:33:23 EDT 2009
Author: scott.stark at jboss.org
Date: 2009-04-02 02:33:23 -0400 (Thu, 02 Apr 2009)
New Revision: 86637
Modified:
projects/jboss-man/branches/Branch_2_1/metatype/src/main/java/org/jboss/metatype/plugins/values/DefaultMetaValueFactory.java
projects/jboss-man/branches/Branch_2_1/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/branches/Branch_2_1/metatype/src/main/java/org/jboss/metatype/plugins/values/DefaultMetaValueFactory.java
===================================================================
--- projects/jboss-man/branches/Branch_2_1/metatype/src/main/java/org/jboss/metatype/plugins/values/DefaultMetaValueFactory.java 2009-04-02 06:32:25 UTC (rev 86636)
+++ projects/jboss-man/branches/Branch_2_1/metatype/src/main/java/org/jboss/metatype/plugins/values/DefaultMetaValueFactory.java 2009-04-02 06:33:23 UTC (rev 86637)
@@ -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/branches/Branch_2_1/metatype/src/test/java/org/jboss/test/metatype/values/factory/test/UnwrapValueUnitTestCase.java
===================================================================
--- projects/jboss-man/branches/Branch_2_1/metatype/src/test/java/org/jboss/test/metatype/values/factory/test/UnwrapValueUnitTestCase.java 2009-04-02 06:32:25 UTC (rev 86636)
+++ projects/jboss-man/branches/Branch_2_1/metatype/src/test/java/org/jboss/test/metatype/values/factory/test/UnwrapValueUnitTestCase.java 2009-04-02 06:33:23 UTC (rev 86637)
@@ -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