[ 
http://jira.codehaus.org/browse/XFIRE-1070?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_104162
 ] 

Michael Mattox commented on XFIRE-1070:
---------------------------------------

I've debugged this and I see where in the code there is the problem.  I still 
feel I must be missing something because I cannot be the only one using 
xmlbeans bindings with xfire!

Look at this method:

    /**
     * Gets the "listB" element
     */
    public org.example.test14.B getListB()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.example.test14.B target = null;
            target = 
(org.example.test14.B)get_store().find_element_user(LISTB$0, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }


the problem is with the call to find_element_user():

    public TypeStoreUser find_element_user ( QName name, int i )
    {
        for ( Xobj x = _firstChild ; x != null ; x = x._nextSibling )
            if (x.isElem() && x._name.equals( name ) && --i < 0)
                return x.getUser();

        return null;
    }

Here is the SOAP request:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; 
xmlns:tes="http://www.example.org/Test14/";>
   <soapenv:Header/>
   <soapenv:Body>
      <tes:foo>
         <a>
            <listB>
               <!--Zero or more repetitions:-->
               <id>5</id>
               <id>5</id>
               <id>5</id>
               <id>5</id>
            </listB>
         </a>
      </tes:foo>
   </soapenv:Body>
</soapenv:Envelope>

Here is the problem:

        for ( Xobj x = _firstChild ; x != null ; x = x._nextSibling )

_firstChild is "a".  The for loop goes through the siblings of a, which in this 
case there are none.  The listB that I'm trying to recover is a child of A, not 
a sibling.

I'm not sure if this is a bug with xmlbeans or a problem with the SOAP request 
I'm sending (automatically generated by SoapUI).  I think I'm the only one 
seeing this because it's related to the structure of the WSDL.



> Unmarshalling problem with xmlbeans - list ends up null
> -------------------------------------------------------
>
>                 Key: XFIRE-1070
>                 URL: http://jira.codehaus.org/browse/XFIRE-1070
>             Project: XFire
>          Issue Type: Bug
>          Components: XMLBeans
>    Affects Versions: 1.2.6
>         Environment: xfire 1.2.6, xmlbeans 2.3.0, jdk 1.5
>            Reporter: Michael Mattox
>            Assignee: Dan Diephouse
>            Priority: Critical
>         Attachments: Test14.wsdl
>
>
> Using document literal wrapped.
> Our method takes a single object which has a list:
>      public String foo(A a) {
>       System.out.println("A.toString() = " + a);
>       System.out.println("a.getListB()" + a.getListB());
>         return "true";
>     }
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; 
> xmlns:tes="http://www.example.org/Test14/";>
>    <soapenv:Header/>
>    <soapenv:Body>
>       <tes:foo>
>          <a>
>             <listB>
>                <!--Zero or more repetitions:-->
>                <id>5</id>
>             </listB>
>          </a>
>       </tes:foo>
>    </soapenv:Body>
> </soapenv:Envelope>
> The .toString on the object shows the list exists:
> A.toString() = <a xmlns:tes="http://www.example.org/Test14/"; 
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
>   <listB>
>     <id>5</id>
>   </listB>
> </a>
> But the system.out.println shows that the list is null:
> a.getListB()null
> I attached the WSDL which shows this problem.

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

        

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply via email to