ID:               43464
 Updated by:       [email protected]
 Reported By:      andrew at is dot co dot za
-Status:           Open
+Status:           Feedback
 Bug Type:         SOAP related
 Operating System: Fedora Core release 6
 PHP Version:      5.2.5
 New Comment:

Please try using this CVS snapshot:

  http://snaps.php.net/php5.2-latest.tar.gz
 
For Windows:

  http://windows.php.net/snapshots/




Previous Comments:
------------------------------------------------------------------------

[2008-10-02 14:31:45] david dot chanial at gmail dot com

Yes, I confirm this bug.

How to demonstrate it with strace :
http://www.craigbrasssystems.com/forum/index.php?showtopic=107&st=0#entry158

Please correct it :)

Best regards,
-- 
DaviXX

------------------------------------------------------------------------

[2007-11-30 11:20:53] andrew at is dot co dot za

Description:
------------
The server.php script shown below fails with a 'PHP Fatal error: 
Maximum execution time of 30 seconds exceeded in
/var/www/html/server.php on line 9' when executed with the supplied
soaptest.wsdl file.

However, if you edit soaptest.wsdl and replace 'soapenc:array' with
'soapenc:Array' (i.e., change the lower case 'a' to an upper case 'A'),
then the script executes correctly.

The first case should at least return an error, rather than seemingly
causing the server to enter an infinite loop.

Reproduce code:
---------------
server.php:

<?php
class SOAPTest {
        public function GetArray() {
                return array('one', 'two', 'three');
        }
}
$server = new SoapServer(dirname(__FILE__) . '/soaptest.wsdl');
$server->setClass('SOAPTest');
$server->handle();
?>

client.php:

<?php
$client = new SoapClient(dirname(__FILE__) . '/soaptest.wsdl',
array('exceptions' => false));
header('Content-Type: text/plain');
$ret = $client->GetArray();
if (is_soap_fault($ret))
        echo "SOAP Fault: " . $ret->faultstring;
else
        var_dump($ret);
?>

soaptest.wsdl:

<?xml version="1.0"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:tns="urn:SOAPTest"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";
targetNamespace="urn:SOAPTest">
  <types>
    <xsd:schema targetNamespace="urn:SOAPTest">
      <xsd:complexType name="ArrayOfString">
        <xsd:complexContent>
          <xsd:restriction base="soapenc:array">
            <xsd:attribute ref="soapenc:arrayType"
arrayType="xsd:string[]"/>
          </xsd:restriction>
        </xsd:complexContent>
      </xsd:complexType>
    </xsd:schema>
  </types>
  <message name="GetArrayInput"/>
  <message name="GetArrayOutput">
    <part name="return" type="tns:ArrayOfString"/>
  </message>
  <portType name="SOAPTestPortType">
    <operation name="GetArray">
      <input message="tns:GetArrayInput"/>
      <output message="tns:GetArrayOutput"/>
    </operation>
  </portType>
  <binding name="SOAPTestBinding" type="tns:SOAPTestPortType">
    <soap:binding xmlns="http://schemas.xmlsoap.org/wsdl/soap/";
style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/";
name="GetArray">
      <input xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/";>
        <soap:body xmlns="http://schemas.xmlsoap.org/wsdl/soap/";
use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="urn:SOAPTest"/>
      </input>
      <output xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/";>
        <soap:body xmlns="http://schemas.xmlsoap.org/wsdl/soap/";
use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="urn:SOAPTest"/>
      </output>
    </operation>
  </binding>
  <service name="SOAPTestService">
    <port xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/";
name="SOAPTestPort" binding="tns:SOAPTestBinding">
      <soap:address xmlns="http://schemas.xmlsoap.org/wsdl/soap/";
location="http://localhost/server.php"/>
    </port>
  </service>
</definitions>

Expected result:
----------------
array(3) {
  [0]=>
  string(3) "one"
  [1]=>
  string(3) "two"
  [2]=>
  string(5) "three"
}

Actual result:
--------------
SOAP Fault: Maximum execution time of 30 seconds exceeded


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=43464&edit=1

Reply via email to