Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Fix exceptions being thrown in beforeFilter breaking error pages.

If an exception was raised in the AppController::beforeFilter(),
requests for content-type responses would render as HTML. Extracting the
startupProcess() allows us to keep a reference to the error controller,
which can be used to force startup RequestHandlerComponent if its
enabled.

Fixes #3389
  • Loading branch information...
commit 3083b01f7d6a756416d493a8fc8c23819e33c20b 1 parent e04e0a0
@markstory markstory authored
View
2  lib/Cake/Controller/CakeErrorController.php
@@ -66,8 +66,6 @@ public function __construct($request = null, $response = null) {
if ($this->Components->enabled('Security')) {
$this->Components->disable('Security');
}
- $this->startupProcess();
-
$this->_set(array('cacheAction' => false, 'viewPath' => 'Errors'));
}
View
4 lib/Cake/Error/ExceptionRenderer.php
@@ -150,7 +150,11 @@ protected function _getController($exception) {
$response = new CakeResponse(array('charset' => Configure::read('App.encoding')));
try {
$controller = new CakeErrorController($request, $response);
+ $controller->startupProcess();
} catch (Exception $e) {
+ if (!empty($controller) && $controller->Components->enabled('RequestHandler')) {
+ $controller->RequestHandler->startup($controller);
+ }
}
if (empty($controller)) {
$controller = new Controller($request, $response);
Please sign in to comment.
Something went wrong with that request. Please try again.