summaryrefslogtreecommitdiffstats
path: root/Bugzilla
diff options
context:
space:
mode:
authorDylan Hardison <dylan@mozilla.com>2016-04-13 16:46:30 +0200
committerDylan Hardison <dylan@mozilla.com>2016-04-13 16:46:30 +0200
commit33f61556746e1729746342d802ca7ea9cea18caf (patch)
tree95e4cb3791be0cd9e09187cbbfbdd3cdc9feb5ff /Bugzilla
parentcc0c32bcb0e9f1b6c0b0157f8480d69047740f1e (diff)
downloadbugzilla-33f61556746e1729746342d802ca7ea9cea18caf.tar.gz
bugzilla-33f61556746e1729746342d802ca7ea9cea18caf.tar.xz
Bug 1195736 - intermittent internal error: "file error - nav_link: not found" (also manifests as fields_lhs: not found)
Diffstat (limited to 'Bugzilla')
-rw-r--r--Bugzilla/Error.pm9
-rw-r--r--Bugzilla/Template.pm3
2 files changed, 10 insertions, 2 deletions
diff --git a/Bugzilla/Error.pm b/Bugzilla/Error.pm
index fa898fba4..927745201 100644
--- a/Bugzilla/Error.pm
+++ b/Bugzilla/Error.pm
@@ -99,8 +99,13 @@ sub _throw_error {
# and calling $template->process over and over for those errors
# is too slow. So instead, we just "die" with a dump of the arguments.
if (Bugzilla->error_mode != ERROR_MODE_TEST) {
- $template->process($name, $vars, \$message)
- || ThrowTemplateError($template->error());
+ if (Bugzilla->template->in_process) {
+ $message = "error inside Bugzilla->template->process: $error";
+ }
+ else {
+ $template->process($name, $vars, \$message)
+ || ThrowTemplateError($template->error());
+ }
}
# Let's call the hook first, so that extensions can override
diff --git a/Bugzilla/Template.pm b/Bugzilla/Template.pm
index 56ebd9c21..5b3b045ab 100644
--- a/Bugzilla/Template.pm
+++ b/Bugzilla/Template.pm
@@ -665,12 +665,15 @@ $Template::Stash::SCALAR_OPS->{ truncate } =
###############################################################################
+our $_in_process = 0;
+sub in_process { return $_in_process }
sub process {
my $self = shift;
# All of this current_langs stuff allows template_inner to correctly
# determine what-language Template object it should instantiate.
my $current_langs = Bugzilla->request_cache->{template_current_lang} ||= [];
unshift(@$current_langs, $self->context->{bz_language});
+ local $_in_process = 1;
my $retval = $self->SUPER::process(@_);
shift @$current_langs;
return $retval;