diff --git a/application/MantisBT/Error.php b/application/MantisBT/Error.php
index fd4848b7c6..3e8e25e5d9 100644
--- a/application/MantisBT/Error.php
+++ b/application/MantisBT/Error.php
@@ -36,8 +36,6 @@ class Error {
private static $parameters = array();
- private static $proceedUrl = null;
-
public static function init(){
if( self::$handled === false ) {
// first run
@@ -95,7 +93,7 @@ public static function error_handler( $type, $error, $file, $line, $context ) {
self::init();
}
- if( $type == E_WARNING || $type == E_USER_WARNING || null !== self::$proceedUrl ) {
+ if( $type == E_WARNING || $type == E_USER_WARNING ) {
switch( $type ) {
case E_WARNING:
@@ -109,9 +107,6 @@ public static function error_handler( $type, $error, $file, $line, $context ) {
}
$errorDescription = nl2br( $errorDescription );
echo '
', $errorType, ': ', $errorDescription, '
';
- if ( null !== self::$proceedUrl ) {
- echo '', lang_get( 'proceed' ), '';
- }
return true; // @todo true|false??
}
@@ -148,7 +143,7 @@ public static function display_errors( $noHeader = false ) {
}
$oblen = ob_get_length();
- if( error_handled() && $oblen > 0 ) {
+ if( self::$handled === true && $oblen > 0 ) {
$oldContents = ob_get_contents();
}
@@ -296,8 +291,7 @@ public static function error_print_stack_trace( $stack ) {
array_shift( $stack );
foreach( $stack as $frame ) {
- echo '';
- echo '', ( isset( $frame['file'] ) ? htmlentities( $frame['file'], ENT_COMPAT, 'UTF-8' ) : '-' ), ' | ', ( isset( $frame['line'] ) ? $frame['line'] : '-' ), ' | ', ( isset( $frame['class'] ) ? $frame['class'] : '-' ), ' | ', ( isset( $frame['type'] ) ? $frame['type'] : '-' ), ' | ', ( isset( $frame['function'] ) ? $frame['function'] : '-' ), ' | ';
+ echo '
', ( isset( $frame['file'] ) ? htmlentities( $frame['file'], ENT_COMPAT, 'UTF-8' ) : '-' ), ' | ', ( isset( $frame['line'] ) ? $frame['line'] : '-' ), ' | ', ( isset( $frame['class'] ) ? $frame['class'] : '-' ), ' | ', ( isset( $frame['type'] ) ? $frame['type'] : '-' ), ' | ', ( isset( $frame['function'] ) ? $frame['function'] : '-' ), ' | ';
$args = array();
if( isset( $frame['args'] ) && !empty( $frame['args'] ) ) {
@@ -373,30 +367,6 @@ public static function error_string( $error ) {
return preg_replace( "/&(#[0-9]+|[a-z]+);/i", "&$1;", @htmlspecialchars( $string, ENT_COMPAT, 'UTF-8' ) );
}
-
- /**
- * Simple version of helper_alternate_class for use by error api only.
- * @access private
- * @return string representing css class
- */
- public static function error_alternate_class() {
- static $errIndex = 1;
-
- if( 1 == $errIndex++ % 2 ) {
- return 'class="row-1"';
- } else {
- return 'class="row-2"';
- }
- }
-
- public static function error_parameters( $args ) {
- self::$parameters = $args;
- }
-
- public static function error_proceed_url( $url ) {
- self::$proceedUrl = $url();
- }
-
public static function error_handled() {
return self::$handled;
}
diff --git a/application/core/access_api.php b/application/core/access_api.php
index f0d99f6329..ca93c156af 100644
--- a/application/core/access_api.php
+++ b/application/core/access_api.php
@@ -30,7 +30,6 @@
* @uses constant_inc.php
* @uses current_user_api.php
* @uses database_api.php
- * @uses error_api.php
* @uses helper_api.php
* @uses lang_api.php
* @uses print_api.php
@@ -48,7 +47,6 @@
require_api( 'constant_inc.php' );
require_api( 'current_user_api.php' );
require_api( 'database_api.php' );
-require_api( 'error_api.php' );
require_api( 'helper_api.php' );
require_api( 'lang_api.php' );
require_api( 'print_api.php' );
diff --git a/application/core/authentication_api.php b/application/core/authentication_api.php
index 7e72d10cba..070c1e29f9 100644
--- a/application/core/authentication_api.php
+++ b/application/core/authentication_api.php
@@ -28,7 +28,6 @@
* @uses crypto_api.php
* @uses current_user_api.php
* @uses database_api.php
- * @uses error_api.php
* @uses gpc_api.php
* @uses helper_api.php
* @uses html_api.php
@@ -50,7 +49,6 @@
require_api( 'crypto_api.php' );
require_api( 'current_user_api.php' );
require_api( 'database_api.php' );
-require_api( 'error_api.php' );
require_api( 'gpc_api.php' );
require_api( 'helper_api.php' );
require_api( 'html_api.php' );
diff --git a/application/core/category_api.php b/application/core/category_api.php
index f76ea183f4..b8044065e0 100644
--- a/application/core/category_api.php
+++ b/application/core/category_api.php
@@ -26,7 +26,6 @@
* @uses config_api.php
* @uses constant_inc.php
* @uses database_api.php
- * @uses error_api.php
* @uses helper_api.php
* @uses history_api.php
* @uses lang_api.php
@@ -43,7 +42,6 @@
require_api( 'config_api.php' );
require_api( 'constant_inc.php' );
require_api( 'database_api.php' );
-require_api( 'error_api.php' );
require_api( 'helper_api.php' );
require_api( 'history_api.php' );
require_api( 'lang_api.php' );
diff --git a/application/core/config_api.php b/application/core/config_api.php
index 8c3cfdba23..a9d12d4de7 100644
--- a/application/core/config_api.php
+++ b/application/core/config_api.php
@@ -26,7 +26,6 @@
* @uses authentication_api.php
* @uses constant_inc.php
* @uses database_api.php
- * @uses error_api.php
* @uses helper_api.php
* @uses utility_api.php
*/
@@ -36,7 +35,6 @@
require_api( 'authentication_api.php' );
require_api( 'constant_inc.php' );
require_api( 'database_api.php' );
-require_api( 'error_api.php' );
require_api( 'helper_api.php' );
require_api( 'utility_api.php' );
@@ -86,9 +84,6 @@ function config_get( $p_option, $p_default = null, $p_user = null, $p_project =
}
if( $g_cache_db_table_exists ) {
-
- # @@ debug @@ echo " lu db $p_option ";
- # @@ debug @@ error_print_stack_trace();
# prepare the user's list
$t_users = array();
if( null === $p_user ) {
@@ -459,9 +454,6 @@ function config_delete( $p_option, $p_user = ALL_USERS, $p_project = ALL_PROJECT
return;
}
- # @@ debug @@ echo "lu table=" . ( db_table_exists( 'config' ) ? "yes" : "no" );
- # @@ debug @@ error_print_stack_trace();
-
$c_user = db_prepare_int( $p_user );
$c_project = db_prepare_int( $p_project );
$query = "DELETE FROM {config}
diff --git a/application/core/custom_field_api.php b/application/core/custom_field_api.php
index de7fc14c25..864c4022fd 100644
--- a/application/core/custom_field_api.php
+++ b/application/core/custom_field_api.php
@@ -30,7 +30,6 @@
* @uses constant_inc.php
* @uses database_api.php
* @uses email_api.php
- * @uses error_api.php
* @uses helper_api.php
* @uses history_api.php
* @uses project_api.php
@@ -51,7 +50,6 @@
require_api( 'constant_inc.php' );
require_api( 'database_api.php' );
require_api( 'email_api.php' );
-require_api( 'error_api.php' );
require_api( 'helper_api.php' );
require_api( 'history_api.php' );
require_api( 'project_api.php' );
diff --git a/application/core/email_queue_api.php b/application/core/email_queue_api.php
index 88f006cc73..f7ee010feb 100644
--- a/application/core/email_queue_api.php
+++ b/application/core/email_queue_api.php
@@ -25,7 +25,6 @@
*
* @uses constant_api.php
* @uses database_api.php
- * @uses error_api.php
* @uses lang_api.php
* @uses utility_api.php
*/
@@ -34,7 +33,6 @@
require_api( 'constant_inc.php' );
require_api( 'database_api.php' );
-require_api( 'error_api.php' );
require_api( 'lang_api.php' );
require_api( 'utility_api.php' );
diff --git a/application/core/error_api.php b/application/core/error_api.php
deleted file mode 100644
index a63a7e76e9..0000000000
--- a/application/core/error_api.php
+++ /dev/null
@@ -1,145 +0,0 @@
-.
-
-use MantisBT\Error;
-use MantisBT\Exception\Db;
-
-/**
- * Error API
- *
- * @package CoreAPI
- * @subpackage ErrorAPI
- * @copyright Copyright (C) 2000 - 2002 Kenzaburo Ito - kenito@300baud.org
- * @copyright Copyright (C) 2002 - 2011 MantisBT Team - mantisbt-dev@lists.sourceforge.net
- * @link http://www.mantisbt.org
- *
- * @uses compress_api.php
- * @uses config_api.php
- * @uses constant_api.php
- * @uses database_api.php
- * @uses html_api.php
- * @uses lang_api.php
- */
-
-require_api( 'compress_api.php' );
-require_api( 'config_api.php' );
-require_api( 'constant_inc.php' );
-require_api( 'database_api.php' );
-require_api( 'html_api.php' );
-require_api( 'lang_api.php' );
-
-$g_error_parameters = array();
-$g_error_proceed_url = null;
-$g_error_send_page_header = true;
-
-set_exception_handler(array('MantisBT\Error', 'exception_handler'));
-set_error_handler(array('MantisBT\Error', 'error_handler'));
-register_shutdown_function(array('MantisBT\Error', 'shutdown_error_handler'));
-
-function exception_handler($exception) {
- global $g_error_parameters, $g_error_handled, $g_error_proceed_url;
- global $g_lang_overrides;
- global $g_error_send_page_header;
-
- $langPushed = false;
-
- $dbConnected = false;
- if (!$exception instanceof Db ) {
- if( function_exists( 'db_is_connected' ) ) {
- if( db_is_connected() ) {
- $dbConnected = true;
- }
- }
- }
-
- # flush any language overrides to return to user's natural default
- if( $dbConnected ) {
- lang_push( lang_get_default() );
- $langPushed = true;
- }
-
- if( $langPushed ) {
- lang_pop();
- }
-
- $g_error_parameters = array();
- $g_error_proceed_url = null;
-
- //??? return false;
-}
-
-function error_handler( $type, $error, $file, $line, $context ) {
- global $g_error_parameters, $g_error_handled, $g_error_proceed_url;
- global $g_lang_overrides;
- global $g_error_send_page_header;
-
- $langPushed = false;
-
- $dbConnected = false;
- if( function_exists( 'db_is_connected' ) ) {
- if( db_is_connected() ) {
- $dbConnected = true;
- }
- }
-
- # flush any language overrides to return to user's natural default
- if( $dbConnected ) {
- lang_push( lang_get_default() );
- $langPushed = true;
- }
-
- if( $langPushed ) {
- lang_pop();
- }
-
- $g_error_parameters = array();
- $g_error_proceed_url = null;
-
- return false;
-}
-
-/**
- * Check if we have handled an error during this page
- * Return true if an error has been handled, false otherwise
- * @return bool
- */
-function error_handled() {
- return Error::error_handled();
-}
-
-/**
- * Set additional info parameters to be used when displaying the next error
- * This function takes a variable number of parameters
- *
- * When writing internationalized error strings, note that you can change the
- * order of parameters in the string. See the PHP manual page for the
- * sprintf() function for more details.
- * @access public
- * @return null
- */
-function error_parameters() {
- Error::error_parameters( func_get_args() );
-}
-
-/**
- * Set a url to give to the user to proceed after viewing the error
- * @access public
- * @param string url url given to user after viewing the error
- * @return null
- */
-function error_proceed_url( $url ) {
- Error::error_proceed_url( $url );
-}
diff --git a/application/core/html_api.php b/application/core/html_api.php
index c3d26432a2..86005f6694 100644
--- a/application/core/html_api.php
+++ b/application/core/html_api.php
@@ -63,7 +63,6 @@
* @uses constant_inc.php
* @uses current_user_api.php
* @uses database_api.php
- * @uses error_api.php
* @uses event_api.php
* @uses file_api.php
* @uses filter_api.php
@@ -88,7 +87,6 @@
require_api( 'constant_inc.php' );
require_api( 'current_user_api.php' );
require_api( 'database_api.php' );
-require_api( 'error_api.php' );
require_api( 'event_api.php' );
require_api( 'file_api.php' );
require_api( 'filter_api.php' );
@@ -109,9 +107,6 @@
$g_robots_meta = '';
-# flag for error handler to skip header menus
-$g_error_send_page_header = true;
-
$g_stylesheets_included = array();
$g_scripts_included = array();
@@ -237,11 +232,8 @@ function html_page_top2() {
* @return null
*/
function html_page_top2a() {
- global $g_error_send_page_header;
-
html_head_end();
html_body_begin();
- $g_error_send_page_header = false;
html_header();
html_top_banner();
}
@@ -378,7 +370,6 @@ function html_css_link( $p_filename ) {
* (6) Print an HTML meta tag to redirect to another page
* This function is optional and may be called by pages that need a redirect.
* $p_time is the number of seconds to wait before redirecting.
- * If we have handled any errors on this page return false and don't redirect.
*
* @param string $p_url The page to redirect: has to be a relative path
* @param integer $p_time seconds to wait for before redirecting
@@ -386,10 +377,6 @@ function html_css_link( $p_filename ) {
* @return boolean
*/
function html_meta_redirect( $p_url, $p_time = null, $p_sanitize = true ) {
- if( error_handled() ) {
- return false;
- }
-
if( null === $p_time ) {
$p_time = current_user_get_pref( 'redirect_delay' );
}
diff --git a/application/core/print_api.php b/application/core/print_api.php
index a3762ccebf..f1d1cda803 100644
--- a/application/core/print_api.php
+++ b/application/core/print_api.php
@@ -34,7 +34,6 @@
* @uses custom_field_api.php
* @uses database_api.php
* @uses email_api.php
- * @uses error_api.php
* @uses file_api.php
* @uses form_api.php
* @uses helper_api.php
@@ -66,7 +65,6 @@
require_api( 'custom_field_api.php' );
require_api( 'database_api.php' );
require_api( 'email_api.php' );
-require_api( 'error_api.php' );
require_api( 'file_api.php' );
require_api( 'form_api.php' );
require_api( 'helper_api.php' );
@@ -88,7 +86,6 @@
# Print the headers to cause the page to redirect to $p_url
# If $p_die is true (default), terminate the execution of the script
# immediately
-# If we have handled any errors on this page return false and don't redirect.
# $p_sanitize - true/false - true in the case where the URL is extracted from GET/POST or untrusted source.
# This would be false if the URL is trusted (e.g. read from config_inc.php).
#
@@ -97,10 +94,6 @@
# @param boolean apply string_sanitize_url to passed url
# @return boolean
function print_header_redirect( $p_url, $p_die = true, $p_sanitize = false, $p_absolute = false ) {
- if( error_handled() ) {
- return false;
- }
-
# validate the url as part of this site before continuing
if( $p_absolute ) {
if( $p_sanitize ) {
diff --git a/application/core/user_api.php b/application/core/user_api.php
index 3983fedf8b..cf44872e7a 100644
--- a/application/core/user_api.php
+++ b/application/core/user_api.php
@@ -29,7 +29,6 @@
* @uses constant_inc.php
* @uses database_api.php
* @uses email_api.php
- * @uses error_api.php
* @uses filter_api.php
* @uses helper_api.php
* @uses lang_api.php
@@ -56,7 +55,6 @@
require_api( 'constant_inc.php' );
require_api( 'database_api.php' );
require_api( 'email_api.php' );
-require_api( 'error_api.php' );
require_api( 'filter_api.php' );
require_api( 'helper_api.php' );
require_api( 'lang_api.php' );
diff --git a/application/core/user_pref_api.php b/application/core/user_pref_api.php
index 1781cd755b..a20233df57 100644
--- a/application/core/user_pref_api.php
+++ b/application/core/user_pref_api.php
@@ -27,7 +27,6 @@
* @uses config_api.php
* @uses constant_inc.php
* @uses database_api.php
- * @uses error_api.php
* @uses lang_api.php
* @uses user_api.php
* @uses utility_api.php
@@ -40,7 +39,6 @@
require_api( 'config_api.php' );
require_api( 'constant_inc.php' );
require_api( 'database_api.php' );
-require_api( 'error_api.php' );
require_api( 'lang_api.php' );
require_api( 'user_api.php' );
require_api( 'utility_api.php' );
diff --git a/docbook/Admin_Guide/en-US/Customizing.xml b/docbook/Admin_Guide/en-US/Customizing.xml
index cb23532b50..f01c203b54 100644
--- a/docbook/Admin_Guide/en-US/Customizing.xml
+++ b/docbook/Admin_Guide/en-US/Customizing.xml
@@ -788,40 +788,5 @@ functions section.
notify after an issue has been deleted
-
-
- Example Custom Function
-
- The following function is used to validate an issue before
- it is resolved.
- status == RESOLVED ) {
-if ( $p_bug_data->resolution == OPEN ) {
-error_parameters( 'the resolution cannot be open to resolve the issue' );
-trigger_error( ERROR_BUG_VALIDATE_FAILURE, ERROR );
-}
-$t_version_count = count( version_get_all_rows( $p_bug_data->project_id ) );
-if ( ( $t_version_count > 0 ) && ( $p_bug_data->fixed_in_version == '' ) ) {
-error_parameters( 'fixed in version must be set to resolve the issue' );
-trigger_error( ERROR_BUG_VALIDATE_FAILURE, ERROR );
-}
-}
-}
-?>]]>
-
- The errors will also need to be defined by adding the following to custom_constants_inc.php
-
- define ( 'ERROR_VALIDATE_FAILURE', 2000 );
- To custom_strings_inc.php
- $MANTIS_ERROR['ERROR_VALIDATE_FAILURE'] = 'This change cannot be made because %s';
-
-
-
diff --git a/public/bug_actiongroup_add_note_inc.php b/public/bug_actiongroup_add_note_inc.php
index ecee8dcba5..df56908790 100644
--- a/public/bug_actiongroup_add_note_inc.php
+++ b/public/bug_actiongroup_add_note_inc.php
@@ -24,7 +24,6 @@
* @uses bug_api.php
* @uses config_api.php
* @uses constant_inc.php
- * @uses error_api.php
* @uses gpc_api.php
* @uses helper_api.php
* @uses lang_api.php
@@ -42,7 +41,6 @@
require_api( 'bug_api.php' );
require_api( 'config_api.php' );
require_api( 'constant_inc.php' );
-require_api( 'error_api.php' );
require_api( 'gpc_api.php' );
require_api( 'helper_api.php' );
require_api( 'lang_api.php' );
diff --git a/public/core.php b/public/core.php
index 0ece7fbce0..d16c174e14 100644
--- a/public/core.php
+++ b/public/core.php
@@ -206,13 +206,18 @@ function __autoload( $p_class_name ) {
# Ensure that output is blank so far (output at this stage generally denotes
# that an error has occurred)
-# that an error has occurred)
if ( ( $t_output = ob_get_contents() ) != '' ) {
echo 'Possible Whitespace/Error in Configuration File - Aborting. Output so far follows:
';
echo var_dump( $t_output );
die;
}
+# Register exception handlers
+use MantisBT\Error;
+set_exception_handler(array('MantisBT\Error', 'exception_handler'));
+set_error_handler(array('MantisBT\Error', 'error_handler'));
+register_shutdown_function(array('MantisBT\Error', 'shutdown_error_handler'));
+
# Start HTML compression handler (if enabled)
require_api( 'compress_api.php' );
compress_start_handler();
diff --git a/public/print_all_bug_options_reset.php b/public/print_all_bug_options_reset.php
index b602deb63c..79a7cfb985 100644
--- a/public/print_all_bug_options_reset.php
+++ b/public/print_all_bug_options_reset.php
@@ -27,7 +27,6 @@
* @uses constant_inc.php
* @uses current_user_api.php
* @uses database_api.php
- * @uses error_api.php
* @uses form_api.php
* @uses html_api.php
* @uses lang_api.php
@@ -42,7 +41,6 @@
require_api( 'constant_inc.php' );
require_api( 'current_user_api.php' );
require_api( 'database_api.php' );
-require_api( 'error_api.php' );
require_api( 'form_api.php' );
require_api( 'html_api.php' );
require_api( 'lang_api.php' );
diff --git a/public/print_all_bug_options_update.php b/public/print_all_bug_options_update.php
index 02a360ca9b..40f6bac727 100644
--- a/public/print_all_bug_options_update.php
+++ b/public/print_all_bug_options_update.php
@@ -26,7 +26,6 @@
* @uses authentication_api.php
* @uses constant_inc.php
* @uses database_api.php
- * @uses error_api.php
* @uses form_api.php
* @uses gpc_api.php
* @uses html_api.php
@@ -41,7 +40,6 @@
require_api( 'authentication_api.php' );
require_api( 'constant_inc.php' );
require_api( 'database_api.php' );
-require_api( 'error_api.php' );
require_api( 'form_api.php' );
require_api( 'gpc_api.php' );
require_api( 'html_api.php' );
diff --git a/public/proj_doc_add.php b/public/proj_doc_add.php
index f6580d2b97..48dcd6f34e 100644
--- a/public/proj_doc_add.php
+++ b/public/proj_doc_add.php
@@ -24,7 +24,6 @@
* @uses access_api.php
* @uses config_api.php
* @uses constant_inc.php
- * @uses error_api.php
* @uses file_api.php
* @uses form_api.php
* @uses gpc_api.php
@@ -41,7 +40,6 @@
require_api( 'access_api.php' );
require_api( 'config_api.php' );
require_api( 'constant_inc.php' );
-require_api( 'error_api.php' );
require_api( 'file_api.php' );
require_api( 'form_api.php' );
require_api( 'gpc_api.php' );
diff --git a/public/view_user_page.php b/public/view_user_page.php
index 77cf33ebfa..4741e640bb 100644
--- a/public/view_user_page.php
+++ b/public/view_user_page.php
@@ -24,7 +24,6 @@
* @uses authentication_api.php
* @uses config_api.php
* @uses constant_inc.php
- * @uses error_api.php
* @uses gpc_api.php
* @uses helper_api.php
* @uses html_api.php
@@ -42,7 +41,6 @@
require_api( 'authentication_api.php' );
require_api( 'config_api.php' );
require_api( 'constant_inc.php' );
-require_api( 'error_api.php' );
require_api( 'gpc_api.php' );
require_api( 'helper_api.php' );
require_api( 'html_api.php' );