ID: 36629
Updated by: [EMAIL PROTECTED]
Reported By: ilya at iponweb dot net
-Status: Open
+Status: Assigned
Bug Type: SOAP related
Operating System: Debian Linux (testing)
PHP Version: 5CVS-2006-03-06 (snap)
-Assigned To:
+Assigned To: dmitry
Previous Comments:
------------------------------------------------------------------------
[2006-03-06 13:50:13] ilya at iponweb dot net
Description:
------------
When calling SoapServer::handle() it exits after processing the SOAP
request if request handler returns a SoapFault object. It makes
impossible to do any work on the SOAP server side after processing
requests if they result in SoapFault.
I belive exactly the same issue was reported in bug report #31993 but
for some reason it was closed without actually fixing the problem in
the soap extension. I could reproduce the problem with PHP 5.1.1 and
with PHP snapshot 5.1-200603061130.
The test code demostrates this problem. It is a simple soap server with
two remotly callable functions: test1 and test2. The first of them
simply returns a string, the second returns a soap fault object. The
server is supposed to write a string to a log file after processing a
request. If you call remotly test1 function then you can see the string
in the log, if you call remotly test2 function then the log file is
empty.
Reproduce code:
---------------
<?php
$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$h = fopen("/tmp/soap.log", "w");
$server->addFunction(array('test1', 'test2'));
$server->handle();
fputs($h, 'TEST');
fclose($h);
function test1() {
return "test1";
}
function test2() {
return new SoapFault("test2", "test2");
}
?>
Expected result:
----------------
A log message in file /tmp/soap.log
Actual result:
--------------
Nothing when calling remotly 'test2' function.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=36629&edit=1