Hmmm, looking at the MetaValueFactory.create(Object value) for value == List(Integer),
this seems to be broken or at least the relevant information about element values gets
lost.
This is what this method returns for non-empty Integer ArrayList.
| metaValue: org.jboss.metatype.api.values.MetaValue =
{org.jboss.metatype.api.values.ArrayValueSupport(a)824}"ArrayMetaType{type=[Lorg.jboss.metatype.api.values.CompositeValue;
dims=1 elementType=MutableCompositeMetaType{java.lang.Object}:[CompositeValueSupport:
metaType=[MutableCompositeMetaType{java.lang.Object}] items=[], CompositeValueSupport:
metaType=[MutableCompositeMetaType{java.lang.Object}] items=[]]"
| metaType: org.jboss.metatype.api.types.ArrayMetaType =
{org.jboss.metatype.api.types.ArrayMetaType(a)829}"ArrayMetaType{type=[Lorg.jboss.metatype.api.values.CompositeValue;
dims=1 elementType=MutableCompositeMetaType{java.lang.Object}"
| dimension: int = 1
| elementType: org.jboss.metatype.api.types.MetaType =
{org.jboss.metatype.plugins.types.MutableCompositeMetaType(a)840}"MutableCompositeMetaType{java.lang.Object}"
| primitiveArray: boolean = false
| cachedHashCode: int = -2147483648
| cachedToString: java.lang.String =
{java.lang.String(a)833}"ArrayMetaType{type=[Lorg.jboss.metatype.api.values.CompositeValue;
dims=1 elementType=MutableCompositeMetaType{java.lang.Object}"
| className: java.lang.String =
{java.lang.String(a)850}"[Lorg.jboss.metatype.api.values.CompositeValue;"
| description: java.lang.String = {java.lang.String@851}"1-dimension array of
java.lang.Object"
| typeName: java.lang.String =
{java.lang.String(a)852}"[Lorg.jboss.metatype.api.values.CompositeValue;"
| array: boolean = true
| value: java.lang.Object = {java.lang.Object[2]@830}
| [0] =
{org.jboss.metatype.api.values.CompositeValueSupport@834}"CompositeValueSupport:
metaType=[MutableCompositeMetaType{java.lang.Object}] items=[]"
| contents: java.util.SortedMap = {java.util.TreeMap@839} size = 0
| metaType: org.jboss.metatype.api.types.CompositeMetaType =
{org.jboss.metatype.plugins.types.MutableCompositeMetaType(a)840}"MutableCompositeMetaType{java.lang.Object}"
| cachedHashCode: int = -2147483648
| [1] =
{org.jboss.metatype.api.values.CompositeValueSupport@834}"CompositeValueSupport:
metaType=[MutableCompositeMetaType{java.lang.Object}] items=[]"
| contents: java.util.SortedMap = {java.util.TreeMap@839} size = 0
| metaType: org.jboss.metatype.api.types.CompositeMetaType =
{org.jboss.metatype.plugins.types.MutableCompositeMetaType(a)840}"MutableCompositeMetaType{java.lang.Object}"
| cachedHashCode: int = -2147483648
The problem is that Object is recognized as lists/arrays element type instead of Integer
(runtime object doesn't carry generics info). Hence elements are Composite types
instead of primitive number type.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4111219#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...