dmitry Tue Apr 18 13:08:11 2006 UTC
Modified files:
/php-src/ext/soap php_sdl.c
/php-src/ext/soap/tests/bugs bug37083.phpt bug37083.wsdl
Log:
Fixed bug #37083 (Frequent crashs in SOAP extension with new WSDL caching
code in multithread WS). (Andrei, Dmitry)
http://cvs.php.net/viewcvs.cgi/php-src/ext/soap/php_sdl.c?r1=1.98&r2=1.99&diff_format=u
Index: php-src/ext/soap/php_sdl.c
diff -u php-src/ext/soap/php_sdl.c:1.98 php-src/ext/soap/php_sdl.c:1.99
--- php-src/ext/soap/php_sdl.c:1.98 Mon Apr 17 16:09:42 2006
+++ php-src/ext/soap/php_sdl.c Tue Apr 18 13:08:11 2006
@@ -17,7 +17,7 @@
| Dmitry Stogov <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
*/
-/* $Id: php_sdl.c,v 1.98 2006/04/17 16:09:42 andrei Exp $ */
+/* $Id: php_sdl.c,v 1.99 2006/04/18 13:08:11 dmitry Exp $ */
#include "php_soap.h"
#include "ext/libxml/php_libxml.h"
@@ -143,13 +143,18 @@
enc = get_encoder_ex(NULL, enc_nscat, enc_len);
efree(enc_nscat);
if (enc && sdl) {
- encodePtr new_enc = emalloc(sizeof(encode));
+ encodePtr new_enc = pemalloc(sizeof(encode),
sdl->is_persistent);
memcpy(new_enc, enc, sizeof(encode));
- new_enc->details.ns = estrndup(ns, ns_len);
- new_enc->details.type_str =
estrdup(new_enc->details.type_str);
+ if (sdl->is_persistent) {
+ new_enc->details.ns = zend_strndup(ns, ns_len);
+ new_enc->details.type_str =
strdup(new_enc->details.type_str);
+ } else {
+ new_enc->details.ns = estrndup(ns, ns_len);
+ new_enc->details.type_str =
estrdup(new_enc->details.type_str);
+ }
if (sdl->encoders == NULL) {
- sdl->encoders = emalloc(sizeof(HashTable));
- zend_hash_init(sdl->encoders, 0, NULL,
delete_encoder, 0);
+ sdl->encoders = pemalloc(sizeof(HashTable),
sdl->is_persistent);
+ zend_hash_init(sdl->encoders, 0, NULL,
delete_encoder, sdl->is_persistent);
}
zend_hash_update(sdl->encoders, nscat, len + 1,
&new_enc, sizeof(encodePtr), NULL);
enc = new_enc;
http://cvs.php.net/viewcvs.cgi/php-src/ext/soap/tests/bugs/bug37083.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/soap/tests/bugs/bug37083.phpt
diff -u /dev/null php-src/ext/soap/tests/bugs/bug37083.phpt:1.2
--- /dev/null Tue Apr 18 13:08:11 2006
+++ php-src/ext/soap/tests/bugs/bug37083.phpt Tue Apr 18 13:08:11 2006
@@ -0,0 +1,58 @@
+--TEST--
+Bug #37083 (Frequent crashs in SOAP extension with new WSDL caching code in
multithread WS)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--INI--
+soap.wsdl_cache_enabled=0
+--FILE--
+<?php
+class TestSoapClient extends SoapClient {
+ function __doRequest($request, $location, $action, $version) {
+ return <<<EOF
+<?xml version="1.0" encoding="utf-8"?>
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<soapenv:Body>
+<ns1:searchResponse
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="urn:java:de.pangaea.metadataportal.search.SearchService">
+<searchReturn href="#id0"/>
+</ns1:searchResponse>
+<multiRef id="id0" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns2:SearchResponse"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns2="urn:java:de.pangaea.metadataportal.search.SearchService"><offset
xsi:type="xsd:int">0</offset><queryTime
xsi:type="xsd:long">34</queryTime><results
soapenc:arrayType="ns2:SearchResponseItem[10]"
xsi:type="soapenc:Array"><results href="#id1"/><results href="#id2"/><results
href="#id3"/><results href="#id4"/><results href="#id5"/><results
href="#id6"/><results href="#id7"/><results href="#id8"/><results
href="#id9"/><results href="#id10"/></results><totalCount
xsi:type="xsd:int">3501</totalCount></multiRef>
+<multiRef id="id9" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns3:SearchResponseItem"
xmlns:ns3="urn:java:de.pangaea.metadataportal.search.SearchService"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><fields
href="#id11"/><identifier
xsi:type="xsd:string">oai:dlmd.ifremer.fr:5900168</identifier><score
xsi:type="xsd:float">0.13684115</score><xml
xsi:type="xsd:string">xml1</xml></multiRef>
+<multiRef id="id7" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns4:SearchResponseItem"
xmlns:ns4="urn:java:de.pangaea.metadataportal.search.SearchService"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><fields
href="#id12"/><identifier
xsi:type="xsd:string">oai:dlmd.ifremer.fr:5900039</identifier><score
xsi:type="xsd:float">0.13684115</score><xml
xsi:type="xsd:string">xml2</xml></multiRef>
+<multiRef id="id6" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns5:SearchResponseItem"
xmlns:ns5="urn:java:de.pangaea.metadataportal.search.SearchService"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><fields
href="#id13"/><identifier
xsi:type="xsd:string">oai:dlmd.ifremer.fr:5900040</identifier><score
xsi:type="xsd:float">0.13684115</score><xml
xsi:type="xsd:string">xml3</xml></multiRef>
+<multiRef id="id10" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns6:SearchResponseItem"
xmlns:ns6="urn:java:de.pangaea.metadataportal.search.SearchService"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><fields
href="#id14"/><identifier
xsi:type="xsd:string">oai:dlmd.ifremer.fr:41534</identifier><score
xsi:type="xsd:float">0.13684115</score><xml
xsi:type="xsd:string">xml4</xml></multiRef>
+<multiRef id="id8" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns7:SearchResponseItem"
xmlns:ns7="urn:java:de.pangaea.metadataportal.search.SearchService"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><fields
href="#id15"/><identifier
xsi:type="xsd:string">oai:dlmd.ifremer.fr:5900038</identifier><score
xsi:type="xsd:float">0.13684115</score><xml
xsi:type="xsd:string">xml5</xml></multiRef>
+<multiRef id="id4" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns8:SearchResponseItem"
xmlns:ns8="urn:java:de.pangaea.metadataportal.search.SearchService"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><fields
href="#id16"/><identifier
xsi:type="xsd:string">oai:dlmd.ifremer.fr:2900229</identifier><score
xsi:type="xsd:float">0.13684115</score><xml
xsi:type="xsd:string">xml6</xml></multiRef>
+<multiRef id="id5" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns9:SearchResponseItem"
xmlns:ns9="urn:java:de.pangaea.metadataportal.search.SearchService"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><fields
href="#id17"/><identifier
xsi:type="xsd:string">oai:dlmd.ifremer.fr:2900228</identifier><score
xsi:type="xsd:float">0.13684115</score><xml
xsi:type="xsd:string">xml7</xml></multiRef>
+<multiRef id="id3" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns10:SearchResponseItem"
xmlns:ns10="urn:java:de.pangaea.metadataportal.search.SearchService"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><fields
href="#id18"/><identifier
xsi:type="xsd:string">oai:dlmd.ifremer.fr:2900230</identifier><score
xsi:type="xsd:float">0.13684115</score><xml
xsi:type="xsd:string">xml8</xml></multiRef>
+<multiRef id="id2" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns11:SearchResponseItem"
xmlns:ns11="urn:java:de.pangaea.metadataportal.search.SearchService"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><fields
href="#id19"/><identifier
xsi:type="xsd:string">oai:dlmd.ifremer.fr:2900235</identifier><score
xsi:type="xsd:float">0.13684115</score><xml
xsi:type="xsd:string">xml9</xml></multiRef>
+<multiRef id="id1" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns12:SearchResponseItem"
xmlns:ns12="urn:java:de.pangaea.metadataportal.search.SearchService"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><fields
href="#id20"/><identifier
xsi:type="xsd:string">oai:dlmd.ifremer.fr:5900196</identifier><score
xsi:type="xsd:float">0.13684115</score><xml
xsi:type="xsd:string">xml10</xml></multiRef>
+<multiRef id="id15" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns13:Map" xmlns:ns13="http://xml.apache.org/xml-soap"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><item><key
xsi:type="soapenc:string">maxDateTime</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="xsd:dateTime">2038-12-31T22:59:59.000Z</value></value></item><item><key
xsi:type="soapenc:string">minDateTime</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="xsd:dateTime">2004-12-01T04:58:00.000Z</value></value></item><item><key
xsi:type="soapenc:string">minLongitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">105.539</value></value></item><item><key
xsi:type="soapenc:string">maxLongitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">112.283</value></value></!
item><item><key xsi:type="soapenc:string">maxLatitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">-30.024</value></value></item><item><key
xsi:type="soapenc:string">minLatitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">-34.788</value></value></item></multiRef>
+<multiRef id="id20" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns14:Map" xmlns:ns14="http://xml.apache.org/xml-soap"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><item><key
xsi:type="soapenc:string">maxDateTime</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="xsd:dateTime">2038-12-31T22:59:59.000Z</value></value></item><item><key
xsi:type="soapenc:string">minDateTime</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="xsd:dateTime">2004-06-07T17:41:44.000Z</value></value></item><item><key
xsi:type="soapenc:string">minLongitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">129.882</value></value></item><item><key
xsi:type="soapenc:string">maxLongitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">133.635</value></value></!
item><item><key xsi:type="soapenc:string">maxLatitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">39.529</value></value></item><item><key
xsi:type="soapenc:string">minLatitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">36.419</value></value></item></multiRef>
+<multiRef id="id18" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns15:Map" xmlns:ns15="http://xml.apache.org/xml-soap"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><item><key
xsi:type="soapenc:string">maxDateTime</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="xsd:dateTime">2038-12-31T22:59:59.000Z</value></value></item><item><key
xsi:type="soapenc:string">minDateTime</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="xsd:dateTime">2004-03-10T01:40:00.000Z</value></value></item><item><key
xsi:type="soapenc:string">minLongitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">63.121</value></value></item><item><key
xsi:type="soapenc:string">maxLongitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">80.92</value></value></ite!
m><item><key xsi:type="soapenc:string">maxLatitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">0.158</value></value></item><item><key
xsi:type="soapenc:string">minLatitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">-3.675</value></value></item></multiRef>
+<multiRef id="id14" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns16:Map" xmlns:ns16="http://xml.apache.org/xml-soap"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><item><key
xsi:type="soapenc:string">maxDateTime</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="xsd:dateTime">2038-12-31T22:59:59.000Z</value></value></item><item><key
xsi:type="soapenc:string">minDateTime</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="xsd:dateTime">2003-01-12T05:15:00.000Z</value></value></item><item><key
xsi:type="soapenc:string">minLongitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">-42.88</value></value></item><item><key
xsi:type="soapenc:string">maxLongitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">-20.85</value></value></it!
em><item><key xsi:type="soapenc:string">maxLatitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">61.41</value></value></item><item><key
xsi:type="soapenc:string">minLatitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">43.2</value></value></item></multiRef>
+<multiRef id="id13" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns17:Map" xmlns:ns17="http://xml.apache.org/xml-soap"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><item><key
xsi:type="soapenc:string">maxDateTime</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="xsd:dateTime">2038-12-31T22:59:59.000Z</value></value></item><item><key
xsi:type="soapenc:string">minDateTime</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="xsd:dateTime">2004-12-01T16:50:00.000Z</value></value></item><item><key
xsi:type="soapenc:string">minLongitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">108.962</value></value></item><item><key
xsi:type="soapenc:string">maxLongitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">114.713</value></value></!
item><item><key xsi:type="soapenc:string">maxLatitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">-35.262</value></value></item><item><key
xsi:type="soapenc:string">minLatitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">-42.756</value></value></item></multiRef>
+<multiRef id="id17" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns18:Map" xmlns:ns18="http://xml.apache.org/xml-soap"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><item><key
xsi:type="soapenc:string">maxDateTime</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="xsd:dateTime">2038-12-31T22:59:59.000Z</value></value></item><item><key
xsi:type="soapenc:string">minDateTime</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="xsd:dateTime">2003-10-10T11:52:00.000Z</value></value></item><item><key
xsi:type="soapenc:string">minLongitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">68.14</value></value></item><item><key
xsi:type="soapenc:string">maxLongitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">95.987</value></value></ite!
m><item><key xsi:type="soapenc:string">maxLatitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">3.97</value></value></item><item><key
xsi:type="soapenc:string">minLatitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">-1.242</value></value></item></multiRef>
+<multiRef id="id16" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns19:Map" xmlns:ns19="http://xml.apache.org/xml-soap"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><item><key
xsi:type="soapenc:string">maxDateTime</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="xsd:dateTime">2038-12-31T22:59:59.000Z</value></value></item><item><key
xsi:type="soapenc:string">minDateTime</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="xsd:dateTime">2004-01-10T10:35:00.000Z</value></value></item><item><key
xsi:type="soapenc:string">minLongitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">67.71</value></value></item><item><key
xsi:type="soapenc:string">maxLongitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">77.743</value></value></ite!
m><item><key xsi:type="soapenc:string">maxLatitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">3.546</value></value></item><item><key
xsi:type="soapenc:string">minLatitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">-1.965</value></value></item></multiRef>
+<multiRef id="id19" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns20:Map" xmlns:ns20="http://xml.apache.org/xml-soap"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><item><key
xsi:type="soapenc:string">maxDateTime</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="xsd:dateTime">2038-12-31T22:59:59.000Z</value></value></item><item><key
xsi:type="soapenc:string">minDateTime</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="xsd:dateTime">2004-04-09T23:00:00.000Z</value></value></item><item><key
xsi:type="soapenc:string">minLongitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">59.116</value></value></item><item><key
xsi:type="soapenc:string">maxLongitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">69.206</value></value></it!
em><item><key xsi:type="soapenc:string">maxLatitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">-2.274</value></value></item><item><key
xsi:type="soapenc:string">minLatitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">-4.093</value></value></item></multiRef>
+<multiRef id="id11" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns21:Map" xmlns:ns21="http://xml.apache.org/xml-soap"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><item><key
xsi:type="soapenc:string">maxDateTime</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="xsd:dateTime">2038-12-31T22:59:59.000Z</value></value></item><item><key
xsi:type="soapenc:string">minDateTime</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="xsd:dateTime">2002-11-09T23:10:00.000Z</value></value></item><item><key
xsi:type="soapenc:string">minLongitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">156.013</value></value></item><item><key
xsi:type="soapenc:string">maxLongitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">160.042</value></value></!
item><item><key xsi:type="soapenc:string">maxLatitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">5.648</value></value></item><item><key
xsi:type="soapenc:string">minLatitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">4.773</value></value></item></multiRef>
+<multiRef id="id12" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns22:Map" xmlns:ns22="http://xml.apache.org/xml-soap"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><item><key
xsi:type="soapenc:string">maxDateTime</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="xsd:dateTime">2038-12-31T22:59:59.000Z</value></value></item><item><key
xsi:type="soapenc:string">minDateTime</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="xsd:dateTime">2004-11-01T16:58:00.000Z</value></value></item><item><key
xsi:type="soapenc:string">minLongitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">108.11</value></value></item><item><key
xsi:type="soapenc:string">maxLongitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">113.383</value></value></i!
tem><item><key xsi:type="soapenc:string">maxLatitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">-31.666</value></value></item><item><key
xsi:type="soapenc:string">minLatitude</key><value
soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value
xsi:type="soapenc:double">-35.075</value></value></item></multiRef>
+</soapenv:Body></soapenv:Envelope>
+EOF;
+ }
+}
+for ($i = 0; $i < 10; $i++) {
+ $ws=new TestSoapClient(dirname(__FILE__).'/bug37083.wsdl',
+ array('encoding'=>'ISO-8859-1',
+ 'cache_wsdl'=>1));
+ $search=new stdClass();
+ $search->queryString='argo';
+ $search->ranges[]=$r=new stdClass();
+ $r->field='maxDateTime';
+ $r->min='2003-04-01';
+ $search->index='all';
+ $res=$ws->search($search,0,10);
+}
+echo "ok\n";
+?>
+--EXPECT--
+ok
http://cvs.php.net/viewcvs.cgi/php-src/ext/soap/tests/bugs/bug37083.wsdl?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/soap/tests/bugs/bug37083.wsdl
diff -u /dev/null php-src/ext/soap/tests/bugs/bug37083.wsdl:1.2
--- /dev/null Tue Apr 18 13:08:11 2006
+++ php-src/ext/soap/tests/bugs/bug37083.wsdl Tue Apr 18 13:08:11 2006
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions
targetNamespace="urn:java:de.pangaea.metadataportal.search.SearchService"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:impl="urn:java:de.pangaea.metadataportal.search.SearchService"
xmlns:intf="urn:java:de.pangaea.metadataportal.search.SearchService"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <wsdl:types>
+ <schema
targetNamespace="urn:java:de.pangaea.metadataportal.search.SearchService"
xmlns="http://www.w3.org/2001/XMLSchema">
+ <import namespace="http://xml.apache.org/xml-soap"/>
+ <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
+ <complexType name="SearchRequestRange">
+ <sequence>
+ <element name="field" nillable="true" type="xsd:string"/>
+ <element name="max" nillable="true" type="xsd:anyType"/>
+ <element name="min" nillable="true" type="xsd:anyType"/>
+ </sequence>
+ </complexType>
+ <complexType name="ArrayOfSearchRequestRange">
+ <complexContent>
+ <restriction base="soapenc:Array">
+ <attribute ref="soapenc:arrayType"
wsdl:arrayType="impl:SearchRequestRange[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="SearchRequest">
+ <sequence>
+ <element name="index" nillable="true" type="xsd:string"/>
+ <element name="queryString" nillable="true" type="xsd:string"/>
+ <element name="ranges" nillable="true"
type="impl:ArrayOfSearchRequestRange"/>
+ </sequence>
+ </complexType>
+ <complexType name="SearchResponseItem">
+ <sequence>
+ <element name="fields" nillable="true" type="apachesoap:Map"/>
+ <element name="identifier" nillable="true" type="xsd:string"/>
+ <element name="score" type="xsd:float"/>
+ <element name="xml" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ <complexType name="ArrayOfSearchResponseItem">
+ <complexContent>
+ <restriction base="soapenc:Array">
+ <attribute ref="soapenc:arrayType"
wsdl:arrayType="impl:SearchResponseItem[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="SearchResponse">
+ <sequence>
+ <element name="offset" type="xsd:int"/>
+ <element name="queryTime" type="xsd:long"/>
+ <element name="results" nillable="true"
type="impl:ArrayOfSearchResponseItem"/>
+ <element name="totalCount" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </schema>
+ <schema targetNamespace="http://xml.apache.org/xml-soap"
xmlns="http://www.w3.org/2001/XMLSchema">
+ <import
namespace="urn:java:de.pangaea.metadataportal.search.SearchService"/>
+ <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
+ <complexType name="mapItem">
+ <sequence>
+ <element name="key" nillable="true" type="xsd:anyType"/>
+ <element name="value" nillable="true" type="xsd:anyType"/>
+ </sequence>
+ </complexType>
+ <complexType name="Map">
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" name="item"
type="apachesoap:mapItem"/>
+ </sequence>
+ </complexType>
+ </schema>
+ </wsdl:types>
+ <wsdl:message name="searchRequest">
+ <wsdl:part name="in0" type="impl:SearchRequest"/>
+ <wsdl:part name="in1" type="xsd:int"/>
+ <wsdl:part name="in2" type="xsd:int"/>
+ </wsdl:message>
+ <wsdl:message name="searchResponse">
+ <wsdl:part name="searchReturn" type="impl:SearchResponse"/>
+ </wsdl:message>
+ <wsdl:portType name="SearchServiceAxisImpl">
+ <wsdl:operation name="search" parameterOrder="in0 in1 in2">
+ <wsdl:input message="impl:searchRequest" name="searchRequest"/>
+ <wsdl:output message="impl:searchResponse" name="searchResponse"/>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="SearchSoapBinding" type="impl:SearchServiceAxisImpl">
+ <wsdlsoap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="search">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="searchRequest">
+ <wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:java:de.pangaea.metadataportal.search.SearchService"
use="encoded"/>
+ </wsdl:input>
+ <wsdl:output name="searchResponse">
+ <wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:java:de.pangaea.metadataportal.search.SearchService"
use="encoded"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="SearchServiceAxisImplService">
+ <wsdl:port binding="impl:SearchSoapBinding" name="Search">
+ <wsdlsoap:address location="test://"/>
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php