diff --git a/classes/Notice.php b/classes/Notice.php index 9a39c6dc63..2a387d5539 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -308,6 +308,9 @@ class Notice extends Managed_DataObject } public function getObjectType($canonical=false) { + if (is_null($this->object_type) || $this->object_type==='') { + throw new NoObjectTypeException($this); + } return ActivityUtils::resolveUri($this->object_type, $canonical); } diff --git a/lib/noobjecttypeexception.php b/lib/noobjecttypeexception.php new file mode 100644 index 0000000000..bbeea11204 --- /dev/null +++ b/lib/noobjecttypeexception.php @@ -0,0 +1,41 @@ +. + * + * @category Exception + * @package GNUsocial + * @author Mikael Nordfeldth + * @copyright 2013 Free Software Foundation, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 + * @link http://www.gnu.org/software/social/ + */ + +if (!defined('GNUSOCIAL')) { exit(1); } + +class NoObjectTypeException extends ServerException +{ + public $stored; // The object with query that gave no results + + public function __construct(Notice $stored) + { + $this->stored = $stored; + parent::__construct(sprintf(_('Notice has no object type.'))); + } +}