You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by ax...@ws.apache.org on 2004/09/02 14:20:50 UTC

[jira] Closed: (AXIS-1449) Deserialization of xsd:list attribute broken

Message:

   The following issue has been closed.

   Resolver: Davanum Srinivas
       Date: Thu, 2 Sep 2004 5:19 AM

Fixed.

thanks,
dims
---------------------------------------------------------------------
View the issue:
  http://issues.apache.org/jira/browse/AXIS-1449

Here is an overview of the issue:
---------------------------------------------------------------------
        Key: AXIS-1449
    Summary: Deserialization of xsd:list attribute broken
       Type: Bug

     Status: Closed
   Priority: Major
 Resolution: FIXED

    Project: Axis
 Components: 
             Serialization/Deserialization
   Versions:
             1.2 Beta

   Assignee: 
   Reporter: Steve Green

    Created: Tue, 13 Jul 2004 2:56 PM
    Updated: Thu, 2 Sep 2004 5:19 AM

Description:
This was tested against 1.2 beta and the head of CVS as of 13-Jul-2004.

In this xsd snippet, newEntryIDs is an attribute with a list of strings.

   <xs:complexType name="ModifyResponseType">
      <xs:sequence>
         <xs:element ref="Status"/>
	 <xs:element ref="Extension" minOccurs="0" maxOccurs="1"/>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" use="optional"/>
      <xs:attribute name="newEntryIDs" use="optional">
         <xs:simpleType>
            <xs:list itemType="xs:string"/>
         </xs:simpleType>
      </xs:attribute>
   </xs:complexType>

The generated java file defines newEntryIDs like this:

    private java.lang.String[] newEntryIDs;  // attribute

During deserialization, BeanDeserializer.onStartElement selects SimpleListDeserializer as dSer, but then fails this test:

    if (! (dSer instanceof SimpleDeserializer))
                    throw new SAXException(
                         Messages.getMessage("AttrNotSimpleType00",
                                    bpd.getName(),
                                    bpd.getType().toString()));

In fact, SimpleListDeserializer derives directly from DeserializerImpl.  Changing SimpleListDeserializer to derive from SimpleDeserializer seems to fix the problem.


---------------------------------------------------------------------
JIRA INFORMATION:
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

If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira