Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorBenaka Moorthi <benaka.moorthi@gmail.com>2013-09-23 08:36:18 +0400
committerBenaka Moorthi <benaka.moorthi@gmail.com>2013-09-23 08:36:36 +0400
commit7f48059f52b807b4e8d2d05ff70279c94e626cc6 (patch)
tree25a544de71ab15647c9c419e70d08128d7e58a2a /core
parent54a5d4c57466a3811b6aba39d8cc2c4d79ee18bc (diff)
Make sure all calls to Piwik_ExitWithMessage provide backtrace if available, and only print the backtrace if PIWIK_PRINT_ERROR_BACKTRACE is defined. Modified archive cron test to print backtrace if request made by archive cron test fails.
Diffstat (limited to 'core')
-rw-r--r--core/API/ResponseBuilder.php4
-rw-r--r--core/Controller.php2
-rw-r--r--core/DataTable/Renderer.php10
-rw-r--r--core/FrontController.php4
-rw-r--r--core/testMinimumPhpVersion.php15
5 files changed, 25 insertions, 10 deletions
diff --git a/core/API/ResponseBuilder.php b/core/API/ResponseBuilder.php
index 10c3a00132..87da4a0b32 100644
--- a/core/API/ResponseBuilder.php
+++ b/core/API/ResponseBuilder.php
@@ -155,7 +155,9 @@ class ResponseBuilder
{
// If we are in tests, show full backtrace
if (defined('PIWIK_PATH_TEST_TO_ROOT')) {
- if (self::DISPLAY_BACKTRACE_DEBUG) {
+ if (self::DISPLAY_BACKTRACE_DEBUG
+ || Piwik_ShouldPrintBackTraceWithMessage()
+ ) {
$message = $e->getMessage() . " in \n " . $e->getFile() . ":" . $e->getLine() . " \n " . $e->getTraceAsString();
} else {
$message = $e->getMessage() . "\n \n --> To temporarily debug this error further, set const DISPLAY_BACKTRACE_DEBUG=true; in " . basename(__FILE__);
diff --git a/core/Controller.php b/core/Controller.php
index 78f20aad42..7837bdd4ca 100644
--- a/core/Controller.php
+++ b/core/Controller.php
@@ -425,7 +425,7 @@ abstract class Controller
$view->topMenu = Piwik_GetTopMenu();
} catch (Exception $e) {
- Piwik_ExitWithMessage($e->getMessage(), '' /* $e->getTraceAsString() */);
+ Piwik_ExitWithMessage($e->getMessage(), $e->getTraceAsString());
}
}
diff --git a/core/DataTable/Renderer.php b/core/DataTable/Renderer.php
index d62514c1f4..fe70f9e28f 100644
--- a/core/DataTable/Renderer.php
+++ b/core/DataTable/Renderer.php
@@ -125,11 +125,11 @@ abstract class Renderer
protected function getExceptionMessage()
{
- $message = self::renderHtmlEntities($this->exception->getMessage());
-
- // DEBUG
-// $message .= $this->exception->getTraceAsString();
- return $message;
+ $message = $this->exception->getMessage();
+ if (Piwik_ShouldPrintBackTraceWithMessage()) {
+ $message .= "\n" . $this->exception->getTraceAsString();
+ }
+ return self::renderHtmlEntities($message);
}
/**
diff --git a/core/FrontController.php b/core/FrontController.php
index 21032df160..d56991af11 100644
--- a/core/FrontController.php
+++ b/core/FrontController.php
@@ -129,7 +129,7 @@ class FrontController
} catch (Exception $e) {
$debugTrace = $e->getTraceAsString();
$message = Common::sanitizeInputValue($e->getMessage());
- Piwik_ExitWithMessage($message, '' /* $debugTrace */, true);
+ Piwik_ExitWithMessage($message, $debugTrace, true);
}
}
@@ -311,7 +311,7 @@ class FrontController
}
$trace = $e->getTraceAsString();
- Piwik_ExitWithMessage($e->getMessage(), false /* $debugTrace */, true);
+ Piwik_ExitWithMessage($e->getMessage(), $debugTrace, true);
}
}
diff --git a/core/testMinimumPhpVersion.php b/core/testMinimumPhpVersion.php
index 36ee1d183b..840eda9bed 100644
--- a/core/testMinimumPhpVersion.php
+++ b/core/testMinimumPhpVersion.php
@@ -68,6 +68,18 @@ if ($minimumPhpInvalid) {
if (!function_exists('Piwik_ExitWithMessage')) {
/**
+ * Returns true if Piwik should print the backtrace with error messages.
+ *
+ * To make sure the backtrace is printed, define PIWIK_PRINT_ERROR_BACKTRACE.
+ *
+ * @return bool
+ */
+ function Piwik_ShouldPrintBackTraceWithMessage()
+ {
+ return defined('PIWIK_PRINT_ERROR_BACKTRACE');
+ }
+
+ /**
* Displays info/warning/error message in a friendly UI and exits.
*
* @param string $message Main message, must be html encoded before calling
@@ -103,7 +115,8 @@ if (!function_exists('Piwik_ExitWithMessage')) {
. '<a href="index.php">Go to Piwik</a><br/>
<a href="index.php?module=Login">Login</a>'
. '</p>'
- . ' ' . $optionalTrace . ' ' . $optionalLinks;
+ . ' ' . (Piwik_ShouldPrintBackTraceWithMessage() ? $optionalTrace : '')
+ . ' ' . $optionalLinks;
echo $headerPage . $content . $footerPage;
exit;