Edit report at http://bugs.php.net/bug.php?id=47584&edit=1
ID: 47584 Updated by: [email protected] Reported by: gem at rellim dot com Summary: WSDL error in soapClient causes Fatal Error Status: Feedback Type: Bug Package: SOAP related Operating System: Linux PHP Version: 5.2.9 Assigned To: dmitry Block user comment: N New Comment: It is a catchable fatal though. eg. <?php try { $x = @new SoapClient("non-existent.wsdl",array("exceptions" => 1)); } catch (SoapFault $E) { echo $E->faultstring; } echo "ok\n"; Previous Comments: ------------------------------------------------------------------------ [2010-09-02 19:20:22] gem at rellim dot com Hmm, on 2nd look, it does now appear catchable w/o XDebug, but not with XDebug. Ideas? ------------------------------------------------------------------------ [2010-09-02 19:17:36] gem at rellim dot com It fails similarly without XDebug: # php -v PHP 5.3.3 (cli) (built: Jul 26 2010 14:55:07) Copyright (c) 1997-2010 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies with eAccelerator v0.9.6, Copyright (c) 2004-2010 eAccelerator, by eAccelerator # php tmp.php PHP Fatal error: SOAP-ERROR: Parsing WSDL: Couldn't load from 'non- existent.wsdl' : failed to load external entity "non-existent.wsdl" in /tmp/tmp.php on line 3 ok # ------------------------------------------------------------------------ [2010-09-02 19:15:22] gem at rellim dot com Forgot my version details: # php -v PHP 5.3.3 (cli) (built: Jul 26 2010 14:55:07) Copyright (c) 1997-2010 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies with eAccelerator v0.9.6, Copyright (c) 2004-2010 eAccelerator, by eAccelerator with Xdebug v2.1.0, Copyright (c) 2002-2010, by Derick Rethans ------------------------------------------------------------------------ [2010-09-02 19:14:24] gem at rellim dot com Your example fails for me, I can not catch the error: # cat tmp.php <?php try { $x = new SoapClient("non-existent.wsdl"); } catch (Exception $e) { } echo "ok\n"; ?> # php tmp.php PHP Warning: SoapClient::SoapClient(): I/O warning : failed to load external entity "non-existent.wsdl" in /tmp/tmp.php on line 3 PHP Stack trace: PHP 1. {main}() /tmp/tmp.php:0 PHP 2. SoapClient->SoapClient() /tmp/tmp.php:3 PHP Fatal error: SOAP-ERROR: Parsing WSDL: Couldn't load from 'non- existent.wsdl' : failed to load external entity "non-existent.wsdl" in /tmp/tmp.php on line 3 PHP Stack trace: PHP 1. {main}() /tmp/tmp.php:0 PHP 2. SoapClient->SoapClient() /tmp/tmp.php:3 # ------------------------------------------------------------------------ [2010-09-02 10:40:34] [email protected] BTW despite SoapClient emits a fatal error it already throws exception which can be caught (even in 5.2 brunch). <?php try { $x = new SoapClient("non-existent.wsdl"); } catch (Exception $e) { } echo "ok\n";' ?> ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/bug.php?id=47584 -- Edit this bug report at http://bugs.php.net/bug.php?id=47584&edit=1
