ID:               43464
 Comment by:       david dot chanial at gmail dot com
 Reported By:      andrew at is dot co dot za
 Status:           Open
 Bug Type:         SOAP related
 Operating System: Fedora Core release 6
 PHP Version:      5.2.5
 New Comment:

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


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

[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