Some "special" users does not respect the annotations sets by the getUsername
and getRealName
methods and return null.
Example:
UserManager::instance()->getUserAnonymous()->getUserName(); // null instead of a string
Trace:
PHP Fatal error: Uncaught TypeError: UserHelper::getDisplayName(): Argument #1 ($user_name) must be of type string, null given, called in /usr/share/tuleap/src/common/User/UserHelper.class.php on line 214 and defined in /usr/share/tuleap/src/common/User/UserHelper.class.php:93
Stack trace:
#0 /usr/share/tuleap/src/common/User/UserHelper.class.php(214): UserHelper->getDisplayName()
#1 /usr/share/tuleap/src/common/User/UserHelper.class.php(231): UserHelper->getDisplayNameFromUser()
#2 /usr/share/tuleap/plugins/tracker/include/Tracker/FormElement/Tracker_FormElement_Field_List_Bind_UsersValue.php(54): UserHelper->getDisplayNameFromUserId()
#3 /usr/share/tuleap/plugins/tracker/include/Tracker/FormElement/Tracker_FormElement_Field_List_Bind_Users.php(82): Tracker_FormElement_Field_List_Bind_UsersValue->getLabel()
#4 /usr/share/tuleap/plugins/tracker/include/Tracker/FormElement/Tracker_FormElement_Field_List_Bind_Users.php(98): Tracker_FormElement_Field_List_Bind_Users->format()
#5 /usr/share/tuleap/plugins/tracker/include/Tracker/FormElement/Tracker_FormElement_Field_List_Bind.php(246): Tracker_FormElement_Field_List_Bind_Users->formatMailCriteriaValue()
#6 /usr/share/tuleap/plugins/tracker/include/Tracker/FormElement/Tracker_FormElement_Field_List.php(727): Tracker_FormElement_Field_List_Bind->formatMailArtifactvalue()
#7 /usr/share/tuleap/plugins/tracker/include/Tracker/FormElement/Tracker_FormElement_Field.php(518): Tracker_FormElement_Field_List->fetchMailArtifactValue()
#8 /usr/share/tuleap/plugins/tracker/include/Tracker/FormElement/Tracker_FormElement_Container.php(320): Tracker_FormElement_Field->fetchMailArtifact()
#9 /usr/share/tuleap/plugins/tracker/include/Tracker/FormElement/Tracker_FormElement_Container.php(305): Tracker_FormElement_Container->getContainerContent()
#10 /usr/share/tuleap/plugins/tracker/include/Tracker/FormElement/Tracker_FormElement_Container_Column.php(71): Tracker_FormElement_Container->fetchMailRecursiveArtifact()
#11 /usr/share/tuleap/plugins/tracker/include/Tracker/FormElement/Tracker_FormElement_Container_Column_Group.php(96): Tracker_FormElement_Container_Column->fetchMailArtifactInGroup()
#12 /usr/share/tuleap/plugins/tracker/include/Tracker/FormElement/Tracker_FormElement_Container_Column_Group.php(68): Tracker_FormElement_Container_Column_Group->fetchMailGroup()
#13 /usr/share/tuleap/plugins/tracker/include/Tracker/FormElement/Tracker_FormElement_Container_Column.php(176): Tracker_FormElement_Container_Column_Group->fetchMailArtifact()
#14 /usr/share/tuleap/plugins/tracker/include/Tracker/FormElement/Tracker_FormElement_Container_Column.php(66): Tracker_FormElement_Container_Column->fetchWithColumnGroup()
#15 /usr/share/tuleap/plugins/tracker/include/Tracker/FormElement/Tracker_FormElement_Container.php(320): Tracker_FormElement_Container_Column->fetchMailArtifact()
#16 /usr/share/tuleap/plugins/tracker/include/Tracker/FormElement/Tracker_FormElement_Container.php(305): Tracker_FormElement_Container->getContainerContent()
#17 /usr/share/tuleap/plugins/tracker/include/Tracker/FormElement/Tracker_FormElement_Container.php(59): Tracker_FormElement_Container->fetchMailRecursiveArtifact()
#18 /usr/share/tuleap/plugins/tracker/include/Tracker/Artifact/Artifact.php(422): Tracker_FormElement_Container->fetchMailArtifact()
#19 /usr/share/tuleap/plugins/tracker/include/Tracker/Artifact/Artifact.php(399): Tuleap\Tracker\Artifact\Artifact->fetchMailFormElements()
#20 /usr/share/tuleap/plugins/tracker/include/Tracker/Artifact/Changeset/PostCreation/EmailNotificationTask.php(386): Tuleap\Tracker\Artifact\Artifact->fetchMail()
#21 /usr/share/tuleap/plugins/tracker/include/Tracker/Artifact/Changeset/PostCreation/EmailNotificationTask.php(337): Tuleap\Tracker\Artifact\Changeset\PostCreation\EmailNotificationTask->getBodyText()
#22 /usr/share/tuleap/src/common/Date/TimezoneSwitcher.php(40): Tuleap\Tracker\Artifact\Changeset\PostCreation\EmailNotificationTask->Tuleap\Tracker\Artifact\Changeset\PostCreation\{closure}()
#23 /usr/share/tuleap/plugins/tracker/include/Tracker/Artifact/Changeset/PostCreation/EmailNotificationTask.php(345): Tuleap\Date\TimezoneSwitcher->setTimezoneForSpecificUserExecutionContext()
#24 /usr/share/tuleap/plugins/tracker/include/Tracker/Artifact/Changeset/PostCreation/EmailNotificationTask.php(158): Tuleap\Tracker\Artifact\Changeset\PostCreation\EmailNotificationTask->getMessageContent()
#25 /usr/share/tuleap/plugins/tracker/include/Tracker/Artifact/Changeset/PostCreation/EmailNotificationTask.php(116): Tuleap\Tracker\Artifact\Changeset\PostCreation\EmailNotificationTask->buildAMessagePerRecipient()
#26 /usr/share/tuleap/plugins/tracker/include/Tracker/Artifact/Changeset/PostCreation/ActionsRunner.php(190): Tuleap\Tracker\Artifact\Changeset\PostCreation\EmailNotificationTask->execute()
#27 /usr/share/tuleap/plugins/tracker/include/Tracker/Artifact/Changeset/PostCreation/ActionsRunner.php(166): Tuleap\Tracker\Artifact\Changeset\PostCreation\ActionsRunner->processPostCreationActions()
#28 /usr/share/tuleap/plugins/tracker/include/Tracker/Artifact/Changeset/PostCreation/AsynchronousActionsRunner.php(86): Tuleap\Tracker\Artifact\Changeset\PostCreation\ActionsRunner->processAsyncPostCreationActions()
#29 /usr/share/tuleap/plugins/tracker/include/Tracker/Artifact/Changeset/PostCreation/AsynchronousActionsRunner.php(53): Tuleap\Tracker\Artifact\Changeset\PostCreation\AsynchronousActionsRunner->process()
#30 /usr/share/tuleap/plugins/tracker/include/trackerPlugin.php(1737): Tuleap\Tracker\Artifact\Changeset\PostCreation\AsynchronousActionsRunner::addListener()
#31 /usr/share/tuleap/src/common/Event/EventManager.class.php(127): trackerPlugin->workerEvent()
#32 /usr/share/tuleap/src/common/Plugin/PluginLoader.php(73): EventManager->eventManagerDispatch()
#33 /usr/share/tuleap/src/common/Event/EventManager.class.php(116): Tuleap\Plugin\PluginLoader->Tuleap\Plugin\{closure}()
#34 /usr/share/tuleap/src/common/Event/EventManager.class.php(146): EventManager->processEventOnListener()
#35 /usr/share/tuleap/src/common/Queue/TaskWorker/TaskWorkerProcessCommand.php(72): EventManager->dispatch()
#36 /usr/share/tuleap/src/vendor/symfony/console/Command/Command.php(291): Tuleap\Queue\TaskWorker\TaskWorkerProcessCommand->execute()
#37 /usr/share/tuleap/src/vendor/symfony/console/Application.php(998): Symfony\Component\Console\Command\Command->run()
#38 /usr/share/tuleap/src/vendor/symfony/console/Application.php(299): Symfony\Component\Console\Application->doRunCommand()
#39 /usr/share/tuleap/src/common/CLI/Application.php(75): Symfony\Component\Console\Application->doRun()
#40 /usr/share/tuleap/src/vendor/symfony/console/Application.php(171): Tuleap\CLI\Application->doRun()
#41 /usr/share/tuleap/src/utils/tuleap.php(287): Symfony\Component\Console\Application->run()
#42 {main}
thrown in /usr/share/tuleap/src/common/User/UserHelper.class.php on line 93