Code to handle PEAR_Errors raised by DB_DataObject that are bubbling
up, but are actually expected and can safely be ignored.
This commit is contained in:
parent
9d07032334
commit
9f035e2847
@ -487,4 +487,26 @@ class EmailsettingsAction extends AccountSettingsAction
|
|||||||
return $other->id != $user->id;
|
return $other->id != $user->id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check old fashioned PEAR_Error msgs coming from DB_DataObject
|
||||||
|
*
|
||||||
|
* In this case email don't exist in the DB yet, so DB_DataObject
|
||||||
|
* throws an error. Overrided from Action.
|
||||||
|
*
|
||||||
|
* @param PEAR_Error
|
||||||
|
*
|
||||||
|
* @return nothing
|
||||||
|
*/
|
||||||
|
|
||||||
|
function checkDB_DataObjectError($error) {
|
||||||
|
if ($error->getCode() == DB_DATAOBJECT_ERROR_NODATA) {
|
||||||
|
|
||||||
|
// Do nothing.
|
||||||
|
|
||||||
|
} else {
|
||||||
|
parent::checkDB_DataObjectError($error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -228,6 +228,27 @@ class RegisterAction extends Action
|
|||||||
return ($user !== false);
|
return ($user !== false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check old fashioned PEAR_Error msgs coming from DB_DataObject
|
||||||
|
*
|
||||||
|
* In this case nickname and email don't exist in the DB yet,
|
||||||
|
* so DB_DataObject throws an error. Overrided from Action.
|
||||||
|
*
|
||||||
|
* @param PEAR_Error
|
||||||
|
*
|
||||||
|
* @return nothing
|
||||||
|
*/
|
||||||
|
|
||||||
|
function checkDB_DataObjectError($error) {
|
||||||
|
if ($error->getCode() == DB_DATAOBJECT_ERROR_NODATA) {
|
||||||
|
|
||||||
|
// Do nothing.
|
||||||
|
|
||||||
|
} else {
|
||||||
|
parent::checkDB_DataObjectError($error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Does the given email address already exist?
|
* Does the given email address already exist?
|
||||||
*
|
*
|
||||||
|
@ -82,6 +82,17 @@ class Action extends HTMLOutputter // lawsuit
|
|||||||
*/
|
*/
|
||||||
function prepare($argarray)
|
function prepare($argarray)
|
||||||
{
|
{
|
||||||
|
// This is for checking PEAR_Errors raised by DB_DataObject.
|
||||||
|
// Setting this to PEAR_ERROR_CALLBACK because setting
|
||||||
|
// to PEAR_ERROR_EXCEPTION does't work to allow PEAR_Errors
|
||||||
|
// to be handled as PHP5 exceptions, and PEAR_ERROR_RETURN
|
||||||
|
// does not cause DB_DataObject to actually return PEAR_Errors
|
||||||
|
// that can be checked with PEAR::isError() -- instead
|
||||||
|
// they just disappear into the ether, and can only be checked for
|
||||||
|
// after the fact. -- Zach
|
||||||
|
PEAR::setErrorHandling(PEAR_ERROR_CALLBACK,
|
||||||
|
array($this, "checkDB_DataObjectError"));
|
||||||
|
|
||||||
$this->args =& common_copy_args($argarray);
|
$this->args =& common_copy_args($argarray);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -844,6 +855,21 @@ class Action extends HTMLOutputter // lawsuit
|
|||||||
throw new ClientException($msg, $code);
|
throw new ClientException($msg, $code);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check old fashioned PEAR_Error msgs coming from DB_DataObject
|
||||||
|
*
|
||||||
|
* Logs the DB_DataObject error. Override to do something else.
|
||||||
|
*
|
||||||
|
* @param PEAR_Error
|
||||||
|
*
|
||||||
|
* @return nothing
|
||||||
|
*/
|
||||||
|
|
||||||
|
function checkDB_DataObjectError($error) {
|
||||||
|
common_log(LOG_ERR, $error->getMessage());
|
||||||
|
// XXX: throw an exception here? --Zach
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the current URL
|
* Returns the current URL
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user