axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "BEN ABDALLAH Adnene (JIRA)" <axis-...@ws.apache.org>
Subject [jira] Commented: (AXIS-2485) Output-Messages using soapenc:Array deserialize to arrays with null elements
Date Tue, 26 Sep 2006 09:01:50 GMT
    [ http://issues.apache.org/jira/browse/AXIS-2485?page=comments#action_12437774 ] 
            
BEN ABDALLAH Adnene commented on AXIS-2485:
-------------------------------------------

Hi all,

   It seems like this problem is related to the ArrayUtil static method :
      public static Object ArrayUtil.convertObjectToArray(Object obj, Class arrayType)

  I propose the following patch to fix this problem. I am not sure it doesn't have any undesirable
side effect but it seems to be working. Can anybody verify this patch and tell me if it is
correct?

  The patch is:

; Comparison of axis-1_4\src\org\apache\axis\utils\ArrayUtil.java.old and axis-1_4\src\org\apache\axis\utils\ArrayUtil.java
; 9/26/2006 10:55:36 AM
; 
copy 193
add 17
    /**
     * Gets the dimension of arrayType
     * @param arrayType an array class
     * @return the dimension
     */
    public static Class getArrayComponentType(Class arrayType) {      
        if (!arrayType.isArray())
            return arrayType;
        Class compType = arrayType;
        do {
            arrayType = compType;           
            compType = arrayType.getComponentType();
        } while (compType.isArray());
        
        return compType;             
    }

copy 48
delete 1
add 5
                if (pd == null) {
                    if (dim == 1 && destClass.isAssignableFrom(getArrayComponentType(array.getClass()))
&& arraylen == 1) {
                        dest = Array.get(array, 0);
                        return dest;
                    }
copy 1
add 1
                }
copy 41

> Output-Messages using soapenc:Array deserialize to arrays with null elements
> ----------------------------------------------------------------------------
>
>                 Key: AXIS-2485
>                 URL: http://issues.apache.org/jira/browse/AXIS-2485
>             Project: Apache Axis
>          Issue Type: Bug
>          Components: Serialization/Deserialization
>    Affects Versions: 1.3, 1.4
>            Reporter: Thomas Jacob
>
> When using an output message with one parameter, whose type is a complex type using soapenc:Array,
e.g.
> 	<complexType name="ProductArray">
> 		<complexContent>
> 			<restriction base="soapenc:Array">
> 				<attribute ref="soapenc:arrayType" wsdl:arrayType="product:Product[]"/>
> 			</restriction>
> 		</complexContent>
> 	</complexType>
> The response SOAP envelope is decoded incorrectly. First, it is decoded into an array
of arrays, for example if the original response contains 3 elements, it is decoded into an
array of 3 elements, each element being an array of 1 element, containing the actual element
(Product in this case).
> The mapper to Java types does not understand the inner arrays correctly, and transforms
them into nulls.
> So eventually, the caller receives an array with 3 nulls.
> Using a complex type with a sequence of on element, set to maxOccurs="unbounded" works
well, e.g.
> 	<complexType name="ProductArray">
> 		<sequence>
> 			<element name="elements" type="product:Product" maxOccurs="unbounded"/>
> 		</sequence>
> 	</complexType>
> Also, the complex type with soapenc:Array works fine for input messages, i.e. method
parameters.
> Only soapenc:Array in the output does not work.
> The bug occurs in versions 1.3 and 1.4 of Axis. I don't know whether it also occurs in
earlier versions.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Mime
View raw message