Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
1.0
-
None
-
Win XP + Sun 1.5 SDK, latest scout trunk.
Description
I created a simple test case to demonstrate the prob. Basically, the test case would read a file and parse it to uddiResponse, then the code changes the uddiResponse to AuthToken type. Then the code calls AuthTokenImpl.getAuthInfo() but that returned null.
The content of uddiresponse.xml file is captured value of uddiResponse via a debugger of another test in the execute(XmlObject uddiRequest, URI endPointURI) method in RegistryImpl.java:
<authToken generic="2.0" operator="jUDDI.org">
<authInfo>authToken:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX</authInfo>
</authToken>
When the code calls for AuthTokenImpl.getAuthInfo(), it calls find_element_user(AUTHINFO$0, 0). This won't find anything because
1) the namespace isn't right in the uddiresponse.xml. So I updated the file a bit:
<authToken xmlns="urn:uddi-org:api_v2">
<authInfo>authToken:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX</authInfo>
</authToken>
This can be possibly fixed by set the response's namespace in the execute(XmlObject uddiRequest, URI endPointURI) method and I'll try working on that.
2) the find_element_user (in XObj.java) won't be able to travel to the authInfo tag because the x._nextSibling is null. (x._firstChild is the authInfo).
here's the exerpt of the code from xmlbeans:
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; }I tried to change the following from
private static final javax.xml.namespace.QName AUTHINFO$0 =
new javax.xml.namespace.QName("urn:uddi-org:api_v2", "authInfo");
to
private static final javax.xml.namespace.QName AUTHINFO$0 =
new javax.xml.namespace.QName("urn:uddi-org:api_v2", "authToken");
and i was able to get the "authToken:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX" returned when I call AuthTokenImpl.getAuthInfo(). However, the AuthTokenImpl.java is generated so I don't know how to modify it.
Any comments/advise? Thanks, Lin