Re: Duplicate Firstname In Person Result Document

Adam Tauno Williams <[email protected]>
Newsgroups gmane.comp.cms.opengroupware.xmlrpc.devel
Message-ID <[email protected]>
> > In testing my .Net code I discovered that my xmlrpcd returns a  
> > duplicate
> > firstname value (which causes the .Net collection to bail due to
> > duplicate key/value pair).
> Which is correct, a struct can only contain unique keys.

Yep.

> > I checked the connection with ethereal to confirm, and sure enough...
> You can also use the -WOHttpAdaptor_LogStream YES option of xmlrpcd (or  
> any SOPE app) to track HTTP output.

Done, see below.

> > ...
> > <member><name>firstname</name><value><string>Adam</string></value></ 
> > member>
> > <member><name>firstname</name><value><string>Adam</string></value></ 
> > member>
> > ...
> Hm, I didn't try, but its almost impossible that this can happen  
> because XML-RPC records are also stored in hashmaps in SOPE. But who  
> knows ;-)

Sure enough, there it is - a duplicate firstname.

>  It would be great if you could create a bugreport and attach  
> a small Python script which reproduces the issue.

Trouble is that is doesn't manifest as a problem in either PHP or Python
since internally they must just overwrite the incoming duplicate key. 
My PHP code trundles along quite merrily.

192.168.1.20 - - [07/Sep/2004:21:38:45 GMT] "POST /RPC2 HTTP/1.0" 200
170 0.035 - - 0
Sep 07 21:38:45 xmlrpcd [22012]: request is
 
POST /RPC2 HTTP/1.0
x-webobjects-server-protocol: HTTP/1.0
x-webobjects-remote-addr: 192.168.1.20
x-webobjects-remote-host: 192.168.1.20
x-webobjects-server-name: throw.morrison.iserv.net
x-webobjects-server-port: 0
x-webobjects-server-url: http://throw.morrison.iserv.net:0
Content-Type: text/xml
User-Agent: XML-RPC.NET
Authorization: Basic YWRhbTpWYW1CbGgyMA==
Content-Length: 205
Connection: keep-alive
Host: throw
 
<?xml version="1.0"?>
<methodCall>
  <methodName>person.getByNumber</methodName>
  <params>
    <param>
      <value>
        <string>SKY10100</string>
      </value>
    </param>
  </params>
</methodCall>
Sep 07 21:38:45 xmlrpcd [22012]: <>DirectAction>>D decoded XMLRPC call:
<0x0839ED84[XmlRpcMethodCall]: method=person.getByNumber #paras=1>
Sep 07 21:38:45 xmlrpcd [22012]: <(55FC55FC01413E298E)>D instantiated
new datasource 'SkyPersonDataSource' ...
Sep 07 21:38:45 xmlrpcd [22012]: response is
 
HTTP/1.0 200 Ok
content-type: text/xml
content-length: 6111
 
<?xml
version='1.0'?><methodResponse><params><param><value><struct><member><name>id</name><value><string>skyrix://throw.morrison.iserv.net/morrisonOGo/10100</string></value></member><member><name>phones</name><value><struct><member><name>15_fax_private</name><value><struct><member><name>telephoneId</name><value><int>10210</int></value></member><member><name>number</name><value><string></string></value></member><member><name>type</name><value><string>15_fax_private</string></value></member><member><name>info</name><value><string></string></value></member></struct></value></member><member><name>10_fax</name><value><struct><member><name>telephoneId</name><value><int>10200</int></value></member><member><name>number</name><value><string>6163611124</string></value></member><member><name>type</name><value><string>10_fax</string></value></member><member><name>info</name><value><string></string></value></member></struct></value></member><member><name>02_tel</name><value><struct><member><name>telephoneId</name><value><int>10170</int></value></member><member><name>number</name><value><string></string></value></member><member><name>type</name><value><string>02_tel</string></value></member><member><name>info</name><value><string></string></value></member></struct></value></member><member><name>05_tel_private</name><value><struct><member><name>telephoneId</name><value><int>10190</int></value></member><member><name>number</name><value><string></string></value></member><member><name>type</name><value><string>05_tel_private</string></value></member><member><name>info</name><value><string></string></value></member></struct></value></member><member><name>03_tel_funk</name><value><struct><member><name>telephoneId</name><value><int>10180</int></value></member><member><name>number</name><value><string>6165818010</string></value></member><member><name>type</name><value><string>03_tel_funk</string></value></member><member><name>info</name><value><string></string></value></member></struct></value></member><member><name>01_tel</name><value><struct><member><name>telephoneId</name><value><int>10160</int></value></member><member><name>number</name><value><string>6164473822</string></value></member><member><name>type</name><value><string>01_tel</string></value></member><member><name>info</name><value><string></string></value></member></struct></value></member></struct></value></member><member><name>phoneTypes</name><value><array><data><value><string>01_tel</string></value><value><string>02_tel</string></value><value><string>03_tel_funk</string></value><value><string>05_tel_private</string></value><value><string>10_fax</string></value><value><string>15_fax_private</string></value></data></array></value></member><member><name>addresses</name><value><struct><member><name>mailing</name><value><struct><member><name>id</name><value><string>skyrix://throw.morrison.iserv.net/morrisonOGo/10140</string></value></member><member><name>name1</name><value><string>Adam Williams</string></value></member><member><name>street</name><value><string>1825 Monroe Ave NW</string></value></member><member><name>zip</name><value><string>49505</string></value></member><member><name>city</name><value><string>Grand Rapids</string></value></member><member><name>state</name><value><string>Mi</string></value></member><member><name>type</name><value><string>mailing</string></value></member></struct></value></member><member><name>location</name><value><struct><member><name>id</name><value><string>skyrix://throw.morrison.iserv.net/morrisonOGo/10150</string></value></member><member><name>type</name><value><string>location</string></value></member></struct></value></member><member><name>private</name><value><struct><member><name>id</name><value><string>skyrix://throw.morrison.iserv.net/morrisonOGo/10130</string></value></member><member><name>name1</name><value><string>Adam Tauno Williams</string></value></member><member><name>street</name><value><string>537 Shirley St</string></value></member><member><name>zip</name><value><string>Mi</string></value></member><member><name>city</name><value><string>Grand Rapids</string></value></member><member><name>country</name><value><string>USA</string></value></member><member><name>state</name><value><string>49503</string></value></member><member><name>type</name><value><string>private</string></value></member></struct></value></member></struct></value></member><member><name>extendedAttrs</name><value><struct><member><name>email1</name><value><string>[email protected]</string></value></member></struct></value></member><member><name>extendedKeys</name><value><array><data><value><string>email1</string></value><value><string>email2</string></value><value><string>email3</string></value><value><string>job_title</string></value><value><string>other_title1</string></value><value><string>other_title2</string></value></data></array></value></member><member><name>owner</name><value><struct><member><name>id</name><value><string>skyrix://throw.morrison.iserv.net/morrisonOGo/10000</string></value></member><member><name>login</name><value><string>ogo</string></value></member></struct></value></member><member><name>objectVersion</name><value><int>4</int></value></member><member><name>isComplete</name><value><boolean>1</boolean></value></member><member><name>firstname</name><value><string>Adam</string></value></member><member><name>firstname</name><value><string>Adam</string></value></member><member><name>name</name><value><string>Williams</string></value></member><member><name>nickname</name><value><string>ATW</string></value></member><member><name>number</name><value><string>SKY10100</string></value></member><member><name>degree</name><value><string>System and Network Administrator</string></value></member><member><name>url</name><value><string></string></value></member><member><name>login</name><value><string>adam</string></value></member><member><name>isAccount</name><value><boolean>1</boolean></value></member><member><name>isPrivate</name><value><boolean>0</boolean></value></member></struct></value></param></params></methodResponse>
192.168.1.20 - - [07/Sep/2004:21:38:45 GMT] "POST /RPC2 HTTP/1.0" 200
6111 0.211 - - 64K

-- 
OpenGroupware.org XML-RPC
[email protected]
http://mail.opengroupware.org/mailman/listinfo/xmlrpc
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.