diff options
author | Jeff Fearn <Jeff.Fearn@gmail.com> | 2014-12-17 06:09:01 +0100 |
---|---|---|
committer | Byron Jones <glob@mozilla.com> | 2014-12-17 06:09:01 +0100 |
commit | bd4dcb0484989284ea76efe567dd612a32de1ddf (patch) | |
tree | 664dbeb89e941d32f3ea5ef3a815fb316f4b8ec0 | |
parent | f1d4771b6317236748abaaa035b2635f3baa3635 (diff) | |
download | bugzilla-bd4dcb0484989284ea76efe567dd612a32de1ddf.tar.gz bugzilla-bd4dcb0484989284ea76efe567dd612a32de1ddf.tar.xz |
Bug 1089475: Use "ThrowCodeError" when a database error occurs instead of dumping a stack trace
r=glob,a=glob
-rw-r--r-- | Bugzilla/DB.pm | 5 | ||||
-rw-r--r-- | template/en/default/global/code-error.html.tmpl | 4 |
2 files changed, 9 insertions, 0 deletions
diff --git a/Bugzilla/DB.pm b/Bugzilla/DB.pm index 9f3ed0f49..afe728ca7 100644 --- a/Bugzilla/DB.pm +++ b/Bugzilla/DB.pm @@ -142,6 +142,11 @@ sub _handle_error { $_[0] = substr($_[0], 0, 2000) . ' ... ' . substr($_[0], -2000) if length($_[0]) > 4000; $_[0] = Carp::longmess($_[0]); + + if (Bugzilla->usage_mode == USAGE_MODE_BROWSER) { + ThrowCodeError("db_error", { err_message => $_[0] }); + } + return 0; # Now let DBI handle raising the error } diff --git a/template/en/default/global/code-error.html.tmpl b/template/en/default/global/code-error.html.tmpl index 1c3422fa8..a4a4962dd 100644 --- a/template/en/default/global/code-error.html.tmpl +++ b/template/en/default/global/code-error.html.tmpl @@ -104,6 +104,10 @@ [% ELSIF error == "comment_type_invalid" %] '[% type FILTER html %]' is not a valid comment type. + [% ELSIF error == "db_error" %] + An error occurred while performing a database operation: + <pre>[% err_message FILTER html %]</pre> + [% ELSIF error == "db_rename_conflict" %] Name conflict: Cannot rename [% old FILTER html %] to [%+ new FILTER html %] because [% new FILTER html %] already exists. |