X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=php%2Fheader.php;h=51728943ca85d73ed25310f730468e69f5367588;hb=64f30b785cee5fef544fe9a3019641aa2ed8f8c6;hp=90dd9a98f8b8dee47471e64247284eaaf3d67827;hpb=40a76ecc6516a64799d1133edeba39e19b00964a;p=plcapi.git diff --git a/php/header.php b/php/header.php index 90dd9a9..5172894 100644 --- a/php/header.php +++ b/php/header.php @@ -8,7 +8,7 @@ // Mark Huang // Copyright (C) 2005-2006 The Trustees of Princeton University // -// $Id: header.php,v 1.3 2006/11/10 06:31:50 mlhuang Exp $ +// $Id$ // // @@ -169,6 +169,16 @@ class PLCAPI $this->error_log('Fault Code ' . $result['faultCode'] . ': ' . $result['faultString'], 1, true); $ret[] = NULL; + // Thierry - march 30 2007 + // using $adm->error() is broken with begin/commit style + // this is because error() uses last item in trace and checks for ['errors'] + // when using begin/commit we do run internal_call BUT internal_call checks for + // multicall's result globally, not individual results, so ['errors'] comes empty + // I considered hacking internal_call + // to *NOT* maintain this->trace at all when invoked with multicall + // but it is too complex to get all values right + // so let's go for the hacky way, and just record individual errors at the right place + $this->trace[count($this->trace)-1]['errors'][] = end($this->errors); } else { $ret[] = $result[0]; }