mirror of
https://github.com/phpbb/phpbb.git
synced 2025-02-26 21:13:50 +01:00
[ticket/14306] CS and correctly handle exception loop
PHPBB3-14306
This commit is contained in:
parent
7f8b6c02c6
commit
6594ef8b1e
@ -146,10 +146,10 @@ function popup(url, width, height, name)
|
||||
|
||||
<div id="main">
|
||||
<div class="main">
|
||||
<!-- IF CONTAINER_EXCEPTION !== false -->
|
||||
{% if CONTAINER_EXCEPTION !== false %}
|
||||
<div class="errorbox">
|
||||
<p>{L_CONTAINER_EXCEPTION}</p>
|
||||
<p>{L_EXCEPTION}{L_COLON} {{ CONTAINER_EXCEPTION.getMessage() }}</p>
|
||||
<p>{{ lang('CONTAINER_EXCEPTION') }}</p>
|
||||
<p>{{ lang('EXCEPTION') }}{{ lang('COLON') }} {{ CONTAINER_EXCEPTION.getMessage() }}</p>
|
||||
<pre>{{ CONTAINER_EXCEPTION.getTraceAsString() }}</pre>
|
||||
</div>
|
||||
<!-- ENDIF -->
|
||||
{% endif %}
|
||||
|
@ -107,6 +107,9 @@ class container_builder
|
||||
*/
|
||||
private $container_extensions;
|
||||
|
||||
/** @var \Exception */
|
||||
private $build_exception;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
@ -126,7 +129,8 @@ class container_builder
|
||||
*/
|
||||
public function get_container()
|
||||
{
|
||||
try {
|
||||
try
|
||||
{
|
||||
$container_filename = $this->get_container_filename();
|
||||
$config_cache = new ConfigCache($container_filename, defined('DEBUG'));
|
||||
if ($this->use_cache && $config_cache->isFresh())
|
||||
@ -197,8 +201,10 @@ class container_builder
|
||||
throw $e;
|
||||
}
|
||||
|
||||
try
|
||||
if ($this->build_exception === null)
|
||||
{
|
||||
$this->build_exception = $e;
|
||||
|
||||
return $this
|
||||
->without_extensions()
|
||||
->without_cache()
|
||||
@ -207,10 +213,10 @@ class container_builder
|
||||
]))
|
||||
->get_container();
|
||||
}
|
||||
catch (\Exception $_)
|
||||
else
|
||||
{
|
||||
// Rethrow the original exception if it's still failing
|
||||
throw $e;
|
||||
throw $this->build_exception;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user