From c609abf07522c9e1c90811f01e232488492e45b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= Date: Mon, 18 Apr 2016 22:30:01 +0200 Subject: [PATCH] In case of fatal php errors and other unhandled exceptions no html error page is expected to be displayed in the console --- console.php | 11 ++++++++--- lib/base.php | 11 +++-------- lib/private/log/errorhandler.php | 3 +++ 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/console.php b/console.php index fc571b03f1ef..9d2271db9f29 100644 --- a/console.php +++ b/console.php @@ -42,6 +42,11 @@ return; } +function exceptionHandler($exception) { + echo "An unhandled exception has been thrown:" . PHP_EOL; + echo $exception; + exit(1); +} try { require_once 'lib/base.php'; @@ -53,6 +58,8 @@ exit(0); } + set_exception_handler('exceptionHandler'); + if (!OC_Util::runningOnWindows()) { if (!function_exists('posix_getuid')) { echo "The posix extensions are required - see http://php.net/manual/en/book.posix.php" . PHP_EOL; @@ -87,7 +94,5 @@ $application->loadCommands(new ArgvInput(), new ConsoleOutput()); $application->run(); } catch (Exception $ex) { - echo "An unhandled exception has been thrown:" . PHP_EOL; - echo $ex; - exit(1); + exceptionHandler($ex); } diff --git a/lib/base.php b/lib/base.php index 27967588360b..708229a8e7f6 100644 --- a/lib/base.php +++ b/lib/base.php @@ -545,14 +545,9 @@ public static function init() { OC_Util::isSetLocaleWorking(); if (!defined('PHPUNIT_RUN')) { - $logger = \OC::$server->getLogger(); - OC\Log\ErrorHandler::setLogger($logger); - if (\OC::$server->getConfig()->getSystemValue('debug', false)) { - OC\Log\ErrorHandler::register(true); - set_exception_handler(array('OC_Template', 'printExceptionErrorPage')); - } else { - OC\Log\ErrorHandler::register(); - } + OC\Log\ErrorHandler::setLogger(\OC::$server->getLogger()); + $debug = \OC::$server->getConfig()->getSystemValue('debug', false); + OC\Log\ErrorHandler::register($debug); } // register the stream wrappers diff --git a/lib/private/log/errorhandler.php b/lib/private/log/errorhandler.php index 27cde4aa2427..8899bcfcb039 100644 --- a/lib/private/log/errorhandler.php +++ b/lib/private/log/errorhandler.php @@ -44,6 +44,9 @@ public static function register($debug=false) { if ($debug) { set_error_handler(array($handler, 'onAll'), E_ALL); + if (\OC::$CLI) { + set_exception_handler(array('OC_Template', 'printExceptionErrorPage')); + } } else { set_error_handler(array($handler, 'onError')); }