From 2bc58a5abd2564593173ebc47679c70077b8102c Mon Sep 17 00:00:00 2001 From: mark_story Date: Mon, 16 May 2011 21:11:33 -0400 Subject: [PATCH] Added check if Router::getRequest(false) is returning a CakeRequest or null in ExceptionRenderer::_getController(). Fixes 'call to undefined method here()' when having Exceptions raised without valid request set to the Router in testsuite (i.e. undefined database config 'test'). Fixes #1678 . Conflicts: lib/Cake/Error/ExceptionRenderer.php --- lib/Cake/Error/ExceptionRenderer.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/Cake/Error/ExceptionRenderer.php b/lib/Cake/Error/ExceptionRenderer.php index 2bcd9c600..c6146c7f2 100644 --- a/lib/Cake/Error/ExceptionRenderer.php +++ b/lib/Cake/Error/ExceptionRenderer.php @@ -141,13 +141,17 @@ class ExceptionRenderer { * * @param Exception $exception The exception to get a controller for. * @return Controller + * @access protected */ protected function _getController($exception) { App::uses('CakeErrorController', 'Controller'); + if (!$request = Router::getRequest(false)) { + $request = new CakeRequest(); + } try { - $controller = new CakeErrorController(Router::getRequest(false)); + $controller = new CakeErrorController($request); } catch (Exception $e) { - $controller = new Controller(Router::getRequest(false)); + $controller = new Controller($request); $controller->viewPath = 'Errors'; } return $controller;