(bug 42949) API shouldn't assume all exceptions are MWException
authorBrad Jorsch <bjorsch@wikimedia.org>
Tue, 11 Dec 2012 14:12:08 +0000 (09:12 -0500)
committerAlexandre Emsenhuber <ialex.wiki@gmail.com>
Fri, 28 Dec 2012 11:50:08 +0000 (12:50 +0100)
Since I20525253, the exception-handling code in ApiMain has
inadvertently assumed that all thrown exceptions will be subclasses of
MWException. This change restores the check for MWException while
preserving the new check for not UsageException introduced in that
commit.

Change-Id: I5016143a07c871bae910e93b22fefe61a959780c

RELEASE-NOTES-1.21
includes/api/ApiMain.php

index 85c01f4..4afda19 100644 (file)
@@ -123,6 +123,7 @@ production.
   log when determining whether an account is used.
 * (bug 43379) Gracefully fail if rev_len is unavailable for a revision on the
   History page.
+* (bug 42949) API no longer assumes all exceptions are MWException.
 
 === API changes in 1.21 ===
 * prop=revisions can now report the contentmodel and contentformat.
index 97f5ecd..1e8c84e 100644 (file)
@@ -375,7 +375,7 @@ class ApiMain extends ApiBase {
                        wfRunHooks( 'ApiMain::onException', array( $this, $e ) );
 
                        // Log it
-                       if ( !( $e instanceof UsageException ) ) {
+                       if ( $e instanceof MWException && !( $e instanceof UsageException ) ) {
                                global $wgLogExceptionBacktrace;
                                if ( $wgLogExceptionBacktrace ) {
                                        wfDebugLog( 'exception', $e->getLogMessage() . "\n" . $e->getTraceAsString() . "\n" );