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

Reply via email to