From 5999171c11f2ff6c0645cfbfad52c8e198d51ab1 Mon Sep 17 00:00:00 2001 From: Mikael Nordfeldth Date: Wed, 20 Jan 2016 21:37:14 +0100 Subject: [PATCH] Throw NoObjectTypeException on Notice->getObjectType if no string --- classes/Notice.php | 3 +++ lib/noobjecttypeexception.php | 41 +++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 lib/noobjecttypeexception.php 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.'))); + } +}