From b9b85843572bf283f48285001e276ba7e61b63f6 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Sun, 22 Feb 2009 13:37:51 +0100 Subject: updated to MediaWiki 1.14.0 --- includes/Exception.php | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) (limited to 'includes/Exception.php') diff --git a/includes/Exception.php b/includes/Exception.php index ab25f0b8..eb715986 100644 --- a/includes/Exception.php +++ b/includes/Exception.php @@ -83,7 +83,7 @@ class MWException extends Exception { function getHTML() { global $wgShowExceptionDetails; if( $wgShowExceptionDetails ) { - return '

' . htmlspecialchars( $this->getMessage() ) . + return '

' . nl2br( htmlspecialchars( $this->getMessage() ) ) . '

Backtrace:

' . nl2br( htmlspecialchars( $this->getTraceAsString() ) ) . "

\n"; } else { @@ -129,7 +129,16 @@ class MWException extends Exception { $file = $this->getFile(); $line = $this->getLine(); $message = $this->getMessage(); - return $wgRequest->getRequestURL() . " Exception from line $line of $file: $message"; + if ( isset( $wgRequest ) ) { + $url = $wgRequest->getRequestURL(); + if ( !$url ) { + $url = '[no URL]'; + } + } else { + $url = '[no req]'; + } + + return "$url Exception from line $line of $file: $message"; } /** Output the exception report using HTML */ @@ -137,7 +146,7 @@ class MWException extends Exception { global $wgOut; if ( $this->useOutputPage() ) { $wgOut->setPageTitle( $this->getPageTitle() ); - $wgOut->setRobotpolicy( "noindex,nofollow" ); + $wgOut->setRobotPolicy( "noindex,nofollow" ); $wgOut->setArticleRelated( false ); $wgOut->enableClientCache( false ); $wgOut->redirect( '' ); @@ -169,7 +178,7 @@ class MWException extends Exception { wfDebugLog( 'exception', $log ); } if ( $wgCommandLineMode ) { - fwrite( STDERR, $this->getText() ); + wfPrintError( $this->getText() ); } else { $this->reportHTML(); } @@ -268,7 +277,7 @@ function wfReportException( Exception $e ) { $e2->__toString() . "\n"; if ( !empty( $GLOBALS['wgCommandLineMode'] ) ) { - fwrite( STDERR, $message ); + wfPrintError( $message ); } else { echo nl2br( htmlspecialchars( $message ) ). "\n"; } @@ -287,6 +296,21 @@ function wfReportException( Exception $e ) { } } +/** + * Print a message, if possible to STDERR. + * Use this in command line mode only (see wgCommandLineMode) + */ +function wfPrintError( $message ) { + #NOTE: STDERR may not be available, especially if php-cgi is used from the command line (bug #15602). + # Try to produce meaningful output anyway. Using echo may corrupt output to STDOUT though. + if ( defined( 'STDERR' ) ) { + fwrite( STDERR, $message ); + } + else { + echo( $message ); + } +} + /** * Exception handler which simulates the appropriate catch() handling: * -- cgit v1.2.3-54-g00ecf