bug PR-4.4-dev Pending

User tests: Successful: Unsuccessful:

avatar alikon
alikon
6 Jul 2023

Pull Request for Issue #41115 .

Summary of Changes

  • Fix Indirect Modification of Overloaded Property

Testing Instructions

update to 5.0 from 4.4 from cli

Actual result BEFORE applying this Pull Request

error/warning/notice

Expected result AFTER applying this Pull Request

update complete with success
image

Link to documentations

Please select:

  • Documentation link for docs.joomla.org:

  • No documentation changes for docs.joomla.org needed

  • Pull Request link for manual.joomla.org:

  • No documentation changes for manual.joomla.org needed

avatar joomla-cms-bot joomla-cms-bot - change - 6 Jul 2023
Category Libraries
avatar alikon alikon - open - 6 Jul 2023
avatar alikon alikon - change - 6 Jul 2023
Status New Pending
avatar alikon alikon - change - 6 Jul 2023
The description was changed
avatar alikon alikon - edited - 6 Jul 2023
avatar alikon alikon - change - 6 Jul 2023
Title
Fix Indirect Modification of Overloaded Property
[4.4] update to 5 from cli
avatar alikon alikon - edited - 6 Jul 2023
avatar alikon alikon - change - 6 Jul 2023
Labels Added: PR-4.4-dev
avatar alikon alikon - change - 6 Jul 2023
The description was changed
avatar alikon alikon - edited - 6 Jul 2023
avatar brianteeman brianteeman - test_item - 7 Jul 2023 - Tested successfully
avatar brianteeman
brianteeman - comment - 7 Jul 2023

I have tested this item successfully on 46534b9

no more errors


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/41117.

avatar richard67
richard67 - comment - 8 Jul 2023

@alikon The PR fixes the "call to undefined method" PHP error. However, I still get following PHP notices shown at the command line:

Updating Joomla
===============

 7/8 -- Copying files ...PHP Notice:  Only variables should be passed by reference in /plugins/extension/finder/services/provider.php on line 37
PHP Stack trace:
PHP   1. {main}() /cli/joomla.php:0
PHP   2. Joomla\CMS\Application\ConsoleApplication->execute() /cli/joomla.php:77
PHP   3. Joomla\Console\Application->execute() /libraries/src/Application/ConsoleApplication.php:258
PHP   4. Joomla\CMS\Application\ConsoleApplication->doExecute() /libraries/vendor/joomla/console/src/Application.php:448
PHP   5. Joomla\Console\Application->doExecute() /libraries/src/Application/ConsoleApplication.php:205
PHP   6. Joomla\Console\Application->runCommand($command = class Joomla\CMS\Console\UpdateCoreCommand { private ${Joomla\Console\Command\AbstractCommand}aliases = []; private ${Joomla\Console\Command\AbstractCommand}application = class Joomla\CMS\Application\ConsoleApplication { protected $config = class Joomla\Registry\Registry { ... }; protected $logger = class Joomla\CMS\Log\DelegatingPsrLogger { ... }; private ${Joomla\Application\AbstractApplication}dispatcher = NULL; private ${Joomla\Console\Application}autoExit = TRUE; private ${Joomla\Console\Application}catchThrowables = TRUE; private ${Joomla\Console\Application}commands = [...]; private ${Joomla\Console\Application}commandLoader = class Joomla\CMS\Console\Loader\WritableContainerLoader { ... }; private ${Joomla\Console\Application}consoleInput = class Symfony\Component\Console\Input\ArgvInput { ... }; private ${Joomla\Console\Application}consoleOutput = class Symfony\Component\Console\Output\ConsoleOutput { ... }; private ${Joomla\Console\Application}defaultCommand = 'list'; private ${Joomla\Console\Application}definition = class Symfony\Component\Console\Input\InputDefinition { ... }; private ${Joomla\Console\Application}helperSet = class Symfony\Component\Console\Helper\HelperSet { ... }; private ${Joomla\Console\Application}initialised = TRUE; private ${Joomla\Console\Application}name = ''; private ${Joomla\Console\Application}runningCommand = ...; private ${Joomla\Console\Application}terminal = class Symfony\Component\Console\Terminal { ... }; private ${Joomla\Console\Application}version = '4.4.0-alpha3-dev'; private ${Joomla\Console\Application}wantsHelp = FALSE; protected $input = class Joomla\CMS\Input\Cli { ... }; protected $name = 'cli'; protected $language = class Joomla\CMS\Language\Language { ... }; private $messages = [...]; private $session = class Joomla\CMS\Session\Session { ... }; private $dispatcher = class Joomla\Event\Dispatcher { ... }; protected $identity = NULL; private $userFactory = class Joomla\CMS\User\UserFactory { ... }; private $container = class Joomla\DI\Container { ... }; private $databaseAwareTraitDatabase = class Joomla\Database\Mysqli\MysqliDriver { ... } }; private ${Joomla\Console\Command\AbstractCommand}applicationDefinitionMerged = TRUE; private ${Joomla\Console\Command\AbstractCommand}applicationDefinitionMergedWithArgs = TRUE; private ${Joomla\Console\Command\AbstractCommand}definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 1; private $lastArrayArgument = NULL; private $lastOptionalArgument = NULL; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; private ${Joomla\Console\Command\AbstractCommand}description = 'Update Joomla'; private ${Joomla\Console\Command\AbstractCommand}help = '<info>%command.name%</info> is used to update Joomla\n\t\t\nUsage: <info>php %command.full_name%</info>'; private ${Joomla\Console\Command\AbstractCommand}helperSet = class Symfony\Component\Console\Helper\HelperSet { private $helpers = [...]; private $command = NULL }; private ${Joomla\Console\Command\AbstractCommand}hidden = FALSE; private ${Joomla\Console\Command\AbstractCommand}name = 'core:update'; private ${Joomla\Console\Command\AbstractCommand}synopsis = ['short' => 'core:update [options] [--] <command>', 'long' => 'core:update [--live-site [LIVE-SITE]] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [--] <command>']; private $cliInput = class Symfony\Component\Console\Input\ArgvInput { protected $definition = class Symfony\Component\Console\Input\InputDefinition { ... }; protected $stream = NULL; protected $options = [...]; protected $arguments = [...]; protected $interactive = TRUE; private $tokens = [...]; private $parsed = [...] }; private $ioStyle = class Symfony\Component\Console\Style\SymfonyStyle { private ${Symfony\Component\Console\Style\OutputStyle}output = class Symfony\Component\Console\Output\ConsoleOutput { ... }; private $input = class Symfony\Component\Console\Input\ArgvInput { ... }; private $output = class Symfony\Component\Console\Output\ConsoleOutput { ... }; private $questionHelper = NULL; private $progressBar = NULL; private $lineLength = 120; private $bufferedOutput = class Symfony\Component\Console\Output\TrimmedBufferOutput { ... } }; public $updateInfo = ['installed' => '4.4.0-alpha3-dev', 'latest' => '5.0.0-alpha3-dev', 'object' => class Joomla\CMS\Updater\Update { ... }, 'hasUpdate' => TRUE, 'current' => '4.4.0-alpha3-dev']; public $updateModel = class Joomla\Component\Joomlaupdate\Administrator\Model\UpdateModel { protected $_errors = [...]; protected $name = 'update'; protected $__state_set = NULL; protected $state = NULL; protected $option = 'com_joomlaupdate'; protected $event_clean_cache = 'onContentCleanCache'; private ${Joomla\CMS\MVC\Model\BaseDatabaseModel}databaseAwareTraitDatabase = class Joomla\Database\Mysqli\MysqliDriver { ... }; private ${Joomla\CMS\MVC\Model\BaseDatabaseModel}mvcFactory = class Joomla\CMS\MVC\Factory\MVCFactory { ... }; private ${Joomla\CMS\MVC\Model\BaseDatabaseModel}dispatcher = class Joomla\Event\Dispatcher { ... }; private ${Joomla\CMS\MVC\Model\BaseDatabaseModel}currentUser = NULL; private ${Joomla\CMS\MVC\Model\BaseDatabaseModel}cacheControllerFactory = class Joomla\CMS\Cache\CacheControllerFactory { ... }; private $updateInformation = [...]; public $_message = 'COM_JOOMLAUPDATE_CHECKED_UPDATES' }; public $progressBar = class Symfony\Component\Console\Helper\ProgressBar { private $barWidth = 28; private $barChar = NULL; private $emptyBarChar = '-'; private $progressChar = '>'; private $format = ' %current%/%max% -- %message%'; private $internalFormat = 'custom'; private $redrawFreq = NULL; private $writeCount = 5; private $lastWriteTime = 1688838874.4994; private $minSecondsBetweenRedraws = 0.04; private $maxSecondsBetweenRedraws = 1; private $output = class Symfony\Component\Console\Output\StreamOutput { ... }; private $step = 7; private $max = 8; private $startTime = 1688838868; private $stepWidth = 1; private $percent = 0.875; private $messages = [...]; private $overwrite = TRUE; private $terminal = class Symfony\Component\Console\Terminal { ... }; private $previousMessage = ' 7/8 -- Copying files ...'; private $cursor = class Symfony\Component\Console\Cursor { ... } }; private $db = class Joomla\Database\Mysqli\MysqliDriver { private ${Joomla\Database\DatabaseDriver}database = 'joomladb3'; public $name = 'mysqli'; public $serverType = 'mysql'; protected $connection = class mysqli { ... }; protected $count = 40; protected $cursor = NULL; protected $executed = TRUE; protected $limit = 0; protected $nameQuote = '`'; protected $nullDate = '0000-00-00 00:00:00'; protected $offset = 0; protected $options = [...]; protected $sql = class Joomla\Database\Mysqli\MysqliQuery { ... }; protected $statement = class Joomla\Database\Mysqli\MysqliStatement { ... }; protected $tablePrefix = 'j3ux0_'; protected $utf = TRUE; protected $errorNum = 0; protected $errorMsg = NULL; protected $transactionDepth = 1; protected $factory = class Joomla\Database\DatabaseFactory { ... }; protected $monitor = NULL; private ${Joomla\Database\DatabaseDriver}dispatcher = class Joomla\Event\Dispatcher { ... }; protected $utf8mb4 = TRUE; protected $mariadb = FALSE } }, $input = class Symfony\Component\Console\Input\ArgvInput { protected $definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 1; private $lastArrayArgument = NULL; private $lastOptionalArgument = NULL; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'core:update']; protected $interactive = TRUE; private $tokens = [0 => 'core:update']; private $parsed = [] }, $output = class Symfony\Component\Console\Output\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { private $decorated = TRUE; private $styles = [...]; private $styleStack = class Symfony\Component\Console\Formatter\OutputFormatterStyleStack { ... } }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(2) of type (stream); private $stderr = class Symfony\Component\Console\Output\StreamOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private $stream = resource(3) of type (stream) }; private $consoleSectionOutputs = [] }) /libraries/vendor/joomla/console/src/Application.php:403
PHP   7. Joomla\Console\Command\AbstractCommand->execute($input = class Symfony\Component\Console\Input\ArgvInput { protected $definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 1; private $lastArrayArgument = NULL; private $lastOptionalArgument = NULL; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'core:update']; protected $interactive = TRUE; private $tokens = [0 => 'core:update']; private $parsed = [] }, $output = class Symfony\Component\Console\Output\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { private $decorated = TRUE; private $styles = [...]; private $styleStack = class Symfony\Component\Console\Formatter\OutputFormatterStyleStack { ... } }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(2) of type (stream); private $stderr = class Symfony\Component\Console\Output\StreamOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private $stream = resource(3) of type (stream) }; private $consoleSectionOutputs = [] }) /libraries/vendor/joomla/console/src/Application.php:1181
PHP   8. Joomla\CMS\Console\UpdateCoreCommand->doExecute($input = class Symfony\Component\Console\Input\ArgvInput { protected $definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 1; private $lastArrayArgument = NULL; private $lastOptionalArgument = NULL; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'core:update']; protected $interactive = TRUE; private $tokens = [0 => 'core:update']; private $parsed = [] }, $output = class Symfony\Component\Console\Output\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { private $decorated = TRUE; private $styles = [...]; private $styleStack = class Symfony\Component\Console\Formatter\OutputFormatterStyleStack { ... } }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(2) of type (stream); private $stderr = class Symfony\Component\Console\Output\StreamOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private $stream = resource(3) of type (stream) }; private $consoleSectionOutputs = [] }) /libraries/vendor/joomla/console/src/Command/AbstractCommand.php:235
PHP   9. Joomla\CMS\Console\UpdateCoreCommand->updateJoomlaCore($updatemodel = class Joomla\Component\Joomlaupdate\Administrator\Model\UpdateModel { protected $_errors = []; protected $name = 'update'; protected $__state_set = NULL; protected $state = NULL; protected $option = 'com_joomlaupdate'; protected $event_clean_cache = 'onContentCleanCache'; private ${Joomla\CMS\MVC\Model\BaseDatabaseModel}databaseAwareTraitDatabase = class Joomla\Database\Mysqli\MysqliDriver { private ${Joomla\Database\DatabaseDriver}database = 'joomladb3'; public $name = 'mysqli'; public $serverType = 'mysql'; protected $connection = class mysqli { ... }; protected $count = 40; protected $cursor = NULL; protected $executed = TRUE; protected $limit = 0; protected $nameQuote = '`'; protected $nullDate = '0000-00-00 00:00:00'; protected $offset = 0; protected $options = [...]; protected $sql = class Joomla\Database\Mysqli\MysqliQuery { ... }; protected $statement = class Joomla\Database\Mysqli\MysqliStatement { ... }; protected $tablePrefix = 'j3ux0_'; protected $utf = TRUE; protected $errorNum = 0; protected $errorMsg = NULL; protected $transactionDepth = 1; protected $factory = class Joomla\Database\DatabaseFactory { ... }; protected $monitor = NULL; private ${Joomla\Database\DatabaseDriver}dispatcher = class Joomla\Event\Dispatcher { ... }; protected $utf8mb4 = TRUE; protected $mariadb = FALSE }; private ${Joomla\CMS\MVC\Model\BaseDatabaseModel}mvcFactory = class Joomla\CMS\MVC\Factory\MVCFactory { private $namespace = '\\Joomla\\Component\\Joomlaupdate'; private $formFactory = class Joomla\CMS\Form\FormFactory { ... }; private $dispatcher = class Joomla\Event\Dispatcher { ... }; private $databaseAwareTraitDatabase = class Joomla\Database\Mysqli\MysqliDriver { ... }; private $router = class Joomla\CMS\Router\SiteRouter { ... }; private $cacheControllerFactory = class Joomla\CMS\Cache\CacheControllerFactory { ... }; private $userFactory = class Joomla\CMS\User\UserFactory { ... }; private $mailerFactory = class Joomla\CMS\Mail\MailerFactory { ... } }; private ${Joomla\CMS\MVC\Model\BaseDatabaseModel}dispatcher = class Joomla\Event\Dispatcher { protected $events = [...]; protected $listeners = [...] }; private ${Joomla\CMS\MVC\Model\BaseDatabaseModel}currentUser = NULL; private ${Joomla\CMS\MVC\Model\BaseDatabaseModel}cacheControllerFactory = class Joomla\CMS\Cache\CacheControllerFactory {  }; private $updateInformation = ['installed' => '4.4.0-alpha3-dev', 'latest' => '5.0.0-alpha3-dev', 'object' => class Joomla\CMS\Updater\Update { ... }, 'hasUpdate' => TRUE, 'current' => '4.4.0-alpha3-dev']; public $_message = 'COM_JOOMLAUPDATE_CHECKED_UPDATES' }) /libraries/src/Console/UpdateCoreCommand.php:171
PHP  10. Joomla\Component\Joomlaupdate\Administrator\Model\UpdateModel->finaliseUpgrade() /libraries/src/Console/UpdateCoreCommand.php:221
PHP  11. JoomlaInstallerScript->update($installer = class Joomla\CMS\Installer\Installer { protected $_errors = []; protected $_adapters = ['file' => class Joomla\CMS\Installer\Adapter\FileAdapter { ... }]; protected $_adapterfolder = 'Adapter'; protected $_classprefix = '\\Joomla\\CMS\\Installer\\Adapter'; protected $_basepath = '/libraries/src/Installer'; protected $_db = class Joomla\Database\Mysqli\MysqliDriver { private ${Joomla\Database\DatabaseDriver}database = 'joomladb3'; public $name = 'mysqli'; public $serverType = 'mysql'; protected $connection = class mysqli { ... }; protected $count = 40; protected $cursor = NULL; protected $executed = TRUE; protected $limit = 0; protected $nameQuote = '`'; protected $nullDate = '0000-00-00 00:00:00'; protected $offset = 0; protected $options = [...]; protected $sql = class Joomla\Database\Mysqli\MysqliQuery { ... }; protected $statement = class Joomla\Database\Mysqli\MysqliStatement { ... }; protected $tablePrefix = 'j3ux0_'; protected $utf = TRUE; protected $errorNum = 0; protected $errorMsg = NULL; protected $transactionDepth = 1; protected $factory = class Joomla\Database\DatabaseFactory { ... }; protected $monitor = NULL; private ${Joomla\Database\DatabaseDriver}dispatcher = class Joomla\Event\Dispatcher { ... }; protected $utf8mb4 = TRUE; protected $mariadb = FALSE }; protected $paths = ['manifest' => '/administrator/manifests/files/joomla.xml', 'source' => '/administrator/manifests/files', 'extension_root' => '']; protected $upgrade = TRUE; public $manifestClass = NULL; protected $overwrite = TRUE; protected $stepStack = []; public $extension = class Joomla\CMS\Table\Extension { protected $_errors = [...]; protected $_tbl = '#__extensions'; protected $_tbl_key = 'extension_id'; protected $_tbl_keys = [...]; protected $_db = class Joomla\Database\Mysqli\MysqliDriver { ... }; protected $_trackAssets = FALSE; protected $_rules = NULL; protected $_locked = FALSE; protected $_autoincrement = TRUE; protected $_columnAlias = [...]; protected $_jsonEncode = [...]; protected $_supportNullValue = TRUE; public $typeAlias = NULL; private ${Joomla\CMS\Table\Table}dispatcher = class Joomla\Event\Dispatcher { ... }; public $custom_data = ''; public $extension_id = 228; public $package_id = 0; public $name = 'files_joomla'; public $type = 'file'; public $element = 'joomla'; public $changelogurl = NULL; public $folder = ''; public $client_id = 0; public $enabled = 1; public $access = 1; public $protected = 1; public $locked = 1; public $manifest_cache = '{"name":"files_joomla","type":"file","creationDate":"2023-06","author":"Joomla! Project","copyright":"(C) 2019 Open Source Matters, Inc.","authorEmail":"admin@joomla.org","authorUrl":"www.joomla.org","version":"4.4.0-alpha3-dev","description":"FILES_JOOMLA_XML_DESCRIPTION","group":""}'; public $params = ''; public $checked_out = NULL; public $checked_out_time = NULL; public $ordering = 0; public $state = 0; public $note = NULL }; public $message = NULL; public $manifest = class SimpleXMLElement { public $@attributes = [...]; public $name = 'files_joomla'; public $author = 'Joomla! Project'; public $authorEmail = 'admin@joomla.org'; public $authorUrl = 'www.joomla.org'; public $copyright = '(C) 2019 Open Source Matters, Inc.'; public $license = 'GNU General Public License version 2 or later; see LICENSE.txt'; public $version = '5.0.0-alpha3-dev'; public $creationDate = '2023-06'; public $description = 'FILES_JOOMLA_XML_DESCRIPTION'; public $scriptfile = 'administrator/components/com_admin/script.php'; public $update = class SimpleXMLElement { ... }; public $fileset = class SimpleXMLElement { ... }; public $updateservers = class SimpleXMLElement { ... } }; protected $extension_message = NULL; protected $redirect_url = NULL; protected $packageUninstall = FALSE; public $extraQuery = ''; private $databaseAwareTraitDatabase = class Joomla\Database\Mysqli\MysqliDriver { private ${Joomla\Database\DatabaseDriver}database = 'joomladb3'; public $name = 'mysqli'; public $serverType = 'mysql'; protected $connection = class mysqli { ... }; protected $count = 40; protected $cursor = NULL; protected $executed = TRUE; protected $limit = 0; protected $nameQuote = '`'; protected $nullDate = '0000-00-00 00:00:00'; protected $offset = 0; protected $options = [...]; protected $sql = class Joomla\Database\Mysqli\MysqliQuery { ... }; protected $statement = class Joomla\Database\Mysqli\MysqliStatement { ... }; protected $tablePrefix = 'j3ux0_'; protected $utf = TRUE; protected $errorNum = 0; protected $errorMsg = NULL; protected $transactionDepth = 1; protected $factory = class Joomla\Database\DatabaseFactory { ... }; protected $monitor = NULL; private ${Joomla\Database\DatabaseDriver}dispatcher = class Joomla\Event\Dispatcher { ... }; protected $utf8mb4 = TRUE; protected $mariadb = FALSE } }) /administrator/components/com_joomlaupdate/src/Model/UpdateModel.php:778
PHP  12. JoomlaInstallerScript->uninstallExtensions() /administrator/components/com_admin/script.php:93
PHP  13. Joomla\CMS\Installer\Installer->uninstall($type = 'plugin', $identifier = 192) /administrator/components/com_admin/script.php:274
PHP  14. Joomla\CMS\Plugin\PluginHelper::importPlugin($type = 'extension', $plugin = *uninitialized*, $autocreate = *uninitialized*, $dispatcher = *uninitialized*) /libraries/src/Installer/Installer.php:866
PHP  15. Joomla\CMS\Plugin\PluginHelper::import($plugin = class stdClass { public $type = 'extension'; public $name = 'finder'; public $params = ''; public $id = 118 }, $autocreate = TRUE, $dispatcher = class Joomla\Event\Dispatcher { protected $events = []; protected $listeners = ['session.start' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onBeforeCompileHead' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onLoadShortcuts' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onContentAfterSave' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onContentAfterDelete' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onContentChangeState' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onApplicationAfterSave' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onExtensionAfterInstall' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onExtensionAfterUninstall' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onExtensionAfterUpdate' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onExtensionAfterSave' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onExtensionAfterDelete' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onUserAfterSave' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onUserAfterDelete' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onUserAfterSaveGroup' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onUserAfterDeleteGroup' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onUserAfterLogin' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onUserLoginFailure' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onUserLogout' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onUserAfterRemind' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onAfterCheckin' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onAfterLogPurge' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onAfterLogExport' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onAfterPurge' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onAfterDispatch' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onJoomlaAfterUpdate' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onUserAfterResetRequest' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onUserAfterResetComplete' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onAfterInitialise' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onContentPrepareForm' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onContentPrepareData' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onAfterRespond' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onAjaxDebug' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onBeforeRespond' => class Joomla\Event\ListenersPriorityQueue { ... }, 'application.after_respond' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onAfterDisconnect' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onContentNormaliseRequestData' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onContentAfterTitle' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onContentBeforeDisplay' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onContentAfterDisplay' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onContentPrepare' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onFinderResult' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onAfterRender' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onUserBeforeSave' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onTaskExecuteSuccess' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onTaskExecuteFailure' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onTaskRoutineNotFound' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onTaskRecoverFailure' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onInstallerAddInstallationTab' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onExtensionBeforeUpdate' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onJoomlaBeforeUpdate' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onInstallerBeforeInstaller' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onInstallerAfterInstaller' => class Joomla\Event\ListenersPriorityQueue { ... }] }) /libraries/src/Plugin/PluginHelper.php:192
PHP  16. Joomla\CMS\Application\ConsoleApplication->bootPlugin($plugin = 'finder', $type = 'extension') /libraries/src/Plugin/PluginHelper.php:232
PHP  17. Joomla\CMS\Application\ConsoleApplication->loadExtension($type = 'Joomla\\CMS\\Extension\\PluginInterface', $extensionName = 'finder:extension', $extensionPath = '/plugins/extension/finder') /libraries/src/Extension/ExtensionManagerTrait.php:99
PHP  18. Joomla\DI\Container->get($resourceName = 'Joomla\\CMS\\Extension\\PluginInterface') /libraries/src/Extension/ExtensionManagerTrait.php:177
PHP  19. Joomla\DI\ContainerResource->getInstance() /libraries/vendor/joomla/di/src/Container.php:96
PHP  20. {anonymous-class:/plugins/extension/finder/services/provider.php:21-46}->{closure:/plugins/extension/finder/services/provider.php:35-43}($container = class Joomla\DI\Container { protected $aliases = []; protected $resources = ['Joomla\CMS\Extension\PluginInterface' => class Joomla\DI\ContainerResource { ... }]; protected $parent = class Joomla\DI\Container { protected $aliases = [...]; protected $resources = [...]; protected $parent = NULL; protected $tags = [...] }; protected $tags = [] }) /libraries/vendor/joomla/di/src/ContainerResource.php:182
PHP Notice:  Only variables should be passed by reference in /plugins/extension/joomla/services/provider.php on line 37
PHP Stack trace:
PHP   1. {main}() /cli/joomla.php:0
PHP   2. Joomla\CMS\Application\ConsoleApplication->execute() /cli/joomla.php:77
PHP   3. Joomla\Console\Application->execute() /libraries/src/Application/ConsoleApplication.php:258
PHP   4. Joomla\CMS\Application\ConsoleApplication->doExecute() /libraries/vendor/joomla/console/src/Application.php:448
PHP   5. Joomla\Console\Application->doExecute() /libraries/src/Application/ConsoleApplication.php:205
PHP   6. Joomla\Console\Application->runCommand($command = class Joomla\CMS\Console\UpdateCoreCommand { private ${Joomla\Console\Command\AbstractCommand}aliases = []; private ${Joomla\Console\Command\AbstractCommand}application = class Joomla\CMS\Application\ConsoleApplication { protected $config = class Joomla\Registry\Registry { ... }; protected $logger = class Joomla\CMS\Log\DelegatingPsrLogger { ... }; private ${Joomla\Application\AbstractApplication}dispatcher = NULL; private ${Joomla\Console\Application}autoExit = TRUE; private ${Joomla\Console\Application}catchThrowables = TRUE; private ${Joomla\Console\Application}commands = [...]; private ${Joomla\Console\Application}commandLoader = class Joomla\CMS\Console\Loader\WritableContainerLoader { ... }; private ${Joomla\Console\Application}consoleInput = class Symfony\Component\Console\Input\ArgvInput { ... }; private ${Joomla\Console\Application}consoleOutput = class Symfony\Component\Console\Output\ConsoleOutput { ... }; private ${Joomla\Console\Application}defaultCommand = 'list'; private ${Joomla\Console\Application}definition = class Symfony\Component\Console\Input\InputDefinition { ... }; private ${Joomla\Console\Application}helperSet = class Symfony\Component\Console\Helper\HelperSet { ... }; private ${Joomla\Console\Application}initialised = TRUE; private ${Joomla\Console\Application}name = ''; private ${Joomla\Console\Application}runningCommand = ...; private ${Joomla\Console\Application}terminal = class Symfony\Component\Console\Terminal { ... }; private ${Joomla\Console\Application}version = '4.4.0-alpha3-dev'; private ${Joomla\Console\Application}wantsHelp = FALSE; protected $input = class Joomla\CMS\Input\Cli { ... }; protected $name = 'cli'; protected $language = class Joomla\CMS\Language\Language { ... }; private $messages = [...]; private $session = class Joomla\CMS\Session\Session { ... }; private $dispatcher = class Joomla\Event\Dispatcher { ... }; protected $identity = NULL; private $userFactory = class Joomla\CMS\User\UserFactory { ... }; private $container = class Joomla\DI\Container { ... }; private $databaseAwareTraitDatabase = class Joomla\Database\Mysqli\MysqliDriver { ... } }; private ${Joomla\Console\Command\AbstractCommand}applicationDefinitionMerged = TRUE; private ${Joomla\Console\Command\AbstractCommand}applicationDefinitionMergedWithArgs = TRUE; private ${Joomla\Console\Command\AbstractCommand}definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 1; private $lastArrayArgument = NULL; private $lastOptionalArgument = NULL; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; private ${Joomla\Console\Command\AbstractCommand}description = 'Update Joomla'; private ${Joomla\Console\Command\AbstractCommand}help = '<info>%command.name%</info> is used to update Joomla\n\t\t\nUsage: <info>php %command.full_name%</info>'; private ${Joomla\Console\Command\AbstractCommand}helperSet = class Symfony\Component\Console\Helper\HelperSet { private $helpers = [...]; private $command = NULL }; private ${Joomla\Console\Command\AbstractCommand}hidden = FALSE; private ${Joomla\Console\Command\AbstractCommand}name = 'core:update'; private ${Joomla\Console\Command\AbstractCommand}synopsis = ['short' => 'core:update [options] [--] <command>', 'long' => 'core:update [--live-site [LIVE-SITE]] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [--] <command>']; private $cliInput = class Symfony\Component\Console\Input\ArgvInput { protected $definition = class Symfony\Component\Console\Input\InputDefinition { ... }; protected $stream = NULL; protected $options = [...]; protected $arguments = [...]; protected $interactive = TRUE; private $tokens = [...]; private $parsed = [...] }; private $ioStyle = class Symfony\Component\Console\Style\SymfonyStyle { private ${Symfony\Component\Console\Style\OutputStyle}output = class Symfony\Component\Console\Output\ConsoleOutput { ... }; private $input = class Symfony\Component\Console\Input\ArgvInput { ... }; private $output = class Symfony\Component\Console\Output\ConsoleOutput { ... }; private $questionHelper = NULL; private $progressBar = NULL; private $lineLength = 120; private $bufferedOutput = class Symfony\Component\Console\Output\TrimmedBufferOutput { ... } }; public $updateInfo = ['installed' => '4.4.0-alpha3-dev', 'latest' => '5.0.0-alpha3-dev', 'object' => class Joomla\CMS\Updater\Update { ... }, 'hasUpdate' => TRUE, 'current' => '4.4.0-alpha3-dev']; public $updateModel = class Joomla\Component\Joomlaupdate\Administrator\Model\UpdateModel { protected $_errors = [...]; protected $name = 'update'; protected $__state_set = NULL; protected $state = NULL; protected $option = 'com_joomlaupdate'; protected $event_clean_cache = 'onContentCleanCache'; private ${Joomla\CMS\MVC\Model\BaseDatabaseModel}databaseAwareTraitDatabase = class Joomla\Database\Mysqli\MysqliDriver { ... }; private ${Joomla\CMS\MVC\Model\BaseDatabaseModel}mvcFactory = class Joomla\CMS\MVC\Factory\MVCFactory { ... }; private ${Joomla\CMS\MVC\Model\BaseDatabaseModel}dispatcher = class Joomla\Event\Dispatcher { ... }; private ${Joomla\CMS\MVC\Model\BaseDatabaseModel}currentUser = NULL; private ${Joomla\CMS\MVC\Model\BaseDatabaseModel}cacheControllerFactory = class Joomla\CMS\Cache\CacheControllerFactory { ... }; private $updateInformation = [...]; public $_message = 'COM_JOOMLAUPDATE_CHECKED_UPDATES' }; public $progressBar = class Symfony\Component\Console\Helper\ProgressBar { private $barWidth = 28; private $barChar = NULL; private $emptyBarChar = '-'; private $progressChar = '>'; private $format = ' %current%/%max% -- %message%'; private $internalFormat = 'custom'; private $redrawFreq = NULL; private $writeCount = 5; private $lastWriteTime = 1688838874.4994; private $minSecondsBetweenRedraws = 0.04; private $maxSecondsBetweenRedraws = 1; private $output = class Symfony\Component\Console\Output\StreamOutput { ... }; private $step = 7; private $max = 8; private $startTime = 1688838868; private $stepWidth = 1; private $percent = 0.875; private $messages = [...]; private $overwrite = TRUE; private $terminal = class Symfony\Component\Console\Terminal { ... }; private $previousMessage = ' 7/8 -- Copying files ...'; private $cursor = class Symfony\Component\Console\Cursor { ... } }; private $db = class Joomla\Database\Mysqli\MysqliDriver { private ${Joomla\Database\DatabaseDriver}database = 'joomladb3'; public $name = 'mysqli'; public $serverType = 'mysql'; protected $connection = class mysqli { ... }; protected $count = 40; protected $cursor = NULL; protected $executed = TRUE; protected $limit = 0; protected $nameQuote = '`'; protected $nullDate = '0000-00-00 00:00:00'; protected $offset = 0; protected $options = [...]; protected $sql = class Joomla\Database\Mysqli\MysqliQuery { ... }; protected $statement = class Joomla\Database\Mysqli\MysqliStatement { ... }; protected $tablePrefix = 'j3ux0_'; protected $utf = TRUE; protected $errorNum = 0; protected $errorMsg = NULL; protected $transactionDepth = 1; protected $factory = class Joomla\Database\DatabaseFactory { ... }; protected $monitor = NULL; private ${Joomla\Database\DatabaseDriver}dispatcher = class Joomla\Event\Dispatcher { ... }; protected $utf8mb4 = TRUE; protected $mariadb = FALSE } }, $input = class Symfony\Component\Console\Input\ArgvInput { protected $definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 1; private $lastArrayArgument = NULL; private $lastOptionalArgument = NULL; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'core:update']; protected $interactive = TRUE; private $tokens = [0 => 'core:update']; private $parsed = [] }, $output = class Symfony\Component\Console\Output\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { private $decorated = TRUE; private $styles = [...]; private $styleStack = class Symfony\Component\Console\Formatter\OutputFormatterStyleStack { ... } }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(2) of type (stream); private $stderr = class Symfony\Component\Console\Output\StreamOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private $stream = resource(3) of type (stream) }; private $consoleSectionOutputs = [] }) /libraries/vendor/joomla/console/src/Application.php:403
PHP   7. Joomla\Console\Command\AbstractCommand->execute($input = class Symfony\Component\Console\Input\ArgvInput { protected $definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 1; private $lastArrayArgument = NULL; private $lastOptionalArgument = NULL; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'core:update']; protected $interactive = TRUE; private $tokens = [0 => 'core:update']; private $parsed = [] }, $output = class Symfony\Component\Console\Output\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { private $decorated = TRUE; private $styles = [...]; private $styleStack = class Symfony\Component\Console\Formatter\OutputFormatterStyleStack { ... } }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(2) of type (stream); private $stderr = class Symfony\Component\Console\Output\StreamOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private $stream = resource(3) of type (stream) }; private $consoleSectionOutputs = [] }) /libraries/vendor/joomla/console/src/Application.php:1181
PHP   8. Joomla\CMS\Console\UpdateCoreCommand->doExecute($input = class Symfony\Component\Console\Input\ArgvInput { protected $definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 1; private $lastArrayArgument = NULL; private $lastOptionalArgument = NULL; private $options = [...]; private $negations = [...]; private $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'core:update']; protected $interactive = TRUE; private $tokens = [0 => 'core:update']; private $parsed = [] }, $output = class Symfony\Component\Console\Output\ConsoleOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { private $decorated = TRUE; private $styles = [...]; private $styleStack = class Symfony\Component\Console\Formatter\OutputFormatterStyleStack { ... } }; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(2) of type (stream); private $stderr = class Symfony\Component\Console\Output\StreamOutput { private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... }; private $stream = resource(3) of type (stream) }; private $consoleSectionOutputs = [] }) /libraries/vendor/joomla/console/src/Command/AbstractCommand.php:235
PHP   9. Joomla\CMS\Console\UpdateCoreCommand->updateJoomlaCore($updatemodel = class Joomla\Component\Joomlaupdate\Administrator\Model\UpdateModel { protected $_errors = []; protected $name = 'update'; protected $__state_set = NULL; protected $state = NULL; protected $option = 'com_joomlaupdate'; protected $event_clean_cache = 'onContentCleanCache'; private ${Joomla\CMS\MVC\Model\BaseDatabaseModel}databaseAwareTraitDatabase = class Joomla\Database\Mysqli\MysqliDriver { private ${Joomla\Database\DatabaseDriver}database = 'joomladb3'; public $name = 'mysqli'; public $serverType = 'mysql'; protected $connection = class mysqli { ... }; protected $count = 40; protected $cursor = NULL; protected $executed = TRUE; protected $limit = 0; protected $nameQuote = '`'; protected $nullDate = '0000-00-00 00:00:00'; protected $offset = 0; protected $options = [...]; protected $sql = class Joomla\Database\Mysqli\MysqliQuery { ... }; protected $statement = class Joomla\Database\Mysqli\MysqliStatement { ... }; protected $tablePrefix = 'j3ux0_'; protected $utf = TRUE; protected $errorNum = 0; protected $errorMsg = NULL; protected $transactionDepth = 1; protected $factory = class Joomla\Database\DatabaseFactory { ... }; protected $monitor = NULL; private ${Joomla\Database\DatabaseDriver}dispatcher = class Joomla\Event\Dispatcher { ... }; protected $utf8mb4 = TRUE; protected $mariadb = FALSE }; private ${Joomla\CMS\MVC\Model\BaseDatabaseModel}mvcFactory = class Joomla\CMS\MVC\Factory\MVCFactory { private $namespace = '\\Joomla\\Component\\Joomlaupdate'; private $formFactory = class Joomla\CMS\Form\FormFactory { ... }; private $dispatcher = class Joomla\Event\Dispatcher { ... }; private $databaseAwareTraitDatabase = class Joomla\Database\Mysqli\MysqliDriver { ... }; private $router = class Joomla\CMS\Router\SiteRouter { ... }; private $cacheControllerFactory = class Joomla\CMS\Cache\CacheControllerFactory { ... }; private $userFactory = class Joomla\CMS\User\UserFactory { ... }; private $mailerFactory = class Joomla\CMS\Mail\MailerFactory { ... } }; private ${Joomla\CMS\MVC\Model\BaseDatabaseModel}dispatcher = class Joomla\Event\Dispatcher { protected $events = [...]; protected $listeners = [...] }; private ${Joomla\CMS\MVC\Model\BaseDatabaseModel}currentUser = NULL; private ${Joomla\CMS\MVC\Model\BaseDatabaseModel}cacheControllerFactory = class Joomla\CMS\Cache\CacheControllerFactory {  }; private $updateInformation = ['installed' => '4.4.0-alpha3-dev', 'latest' => '5.0.0-alpha3-dev', 'object' => class Joomla\CMS\Updater\Update { ... }, 'hasUpdate' => TRUE, 'current' => '4.4.0-alpha3-dev']; public $_message = 'COM_JOOMLAUPDATE_CHECKED_UPDATES' }) /libraries/src/Console/UpdateCoreCommand.php:171
PHP  10. Joomla\Component\Joomlaupdate\Administrator\Model\UpdateModel->finaliseUpgrade() /libraries/src/Console/UpdateCoreCommand.php:221
PHP  11. JoomlaInstallerScript->update($installer = class Joomla\CMS\Installer\Installer { protected $_errors = []; protected $_adapters = ['file' => class Joomla\CMS\Installer\Adapter\FileAdapter { ... }]; protected $_adapterfolder = 'Adapter'; protected $_classprefix = '\\Joomla\\CMS\\Installer\\Adapter'; protected $_basepath = '/libraries/src/Installer'; protected $_db = class Joomla\Database\Mysqli\MysqliDriver { private ${Joomla\Database\DatabaseDriver}database = 'joomladb3'; public $name = 'mysqli'; public $serverType = 'mysql'; protected $connection = class mysqli { ... }; protected $count = 40; protected $cursor = NULL; protected $executed = TRUE; protected $limit = 0; protected $nameQuote = '`'; protected $nullDate = '0000-00-00 00:00:00'; protected $offset = 0; protected $options = [...]; protected $sql = class Joomla\Database\Mysqli\MysqliQuery { ... }; protected $statement = class Joomla\Database\Mysqli\MysqliStatement { ... }; protected $tablePrefix = 'j3ux0_'; protected $utf = TRUE; protected $errorNum = 0; protected $errorMsg = NULL; protected $transactionDepth = 1; protected $factory = class Joomla\Database\DatabaseFactory { ... }; protected $monitor = NULL; private ${Joomla\Database\DatabaseDriver}dispatcher = class Joomla\Event\Dispatcher { ... }; protected $utf8mb4 = TRUE; protected $mariadb = FALSE }; protected $paths = ['manifest' => '/administrator/manifests/files/joomla.xml', 'source' => '/administrator/manifests/files', 'extension_root' => '']; protected $upgrade = TRUE; public $manifestClass = NULL; protected $overwrite = TRUE; protected $stepStack = []; public $extension = class Joomla\CMS\Table\Extension { protected $_errors = [...]; protected $_tbl = '#__extensions'; protected $_tbl_key = 'extension_id'; protected $_tbl_keys = [...]; protected $_db = class Joomla\Database\Mysqli\MysqliDriver { ... }; protected $_trackAssets = FALSE; protected $_rules = NULL; protected $_locked = FALSE; protected $_autoincrement = TRUE; protected $_columnAlias = [...]; protected $_jsonEncode = [...]; protected $_supportNullValue = TRUE; public $typeAlias = NULL; private ${Joomla\CMS\Table\Table}dispatcher = class Joomla\Event\Dispatcher { ... }; public $custom_data = ''; public $extension_id = 228; public $package_id = 0; public $name = 'files_joomla'; public $type = 'file'; public $element = 'joomla'; public $changelogurl = NULL; public $folder = ''; public $client_id = 0; public $enabled = 1; public $access = 1; public $protected = 1; public $locked = 1; public $manifest_cache = '{"name":"files_joomla","type":"file","creationDate":"2023-06","author":"Joomla! Project","copyright":"(C) 2019 Open Source Matters, Inc.","authorEmail":"admin@joomla.org","authorUrl":"www.joomla.org","version":"4.4.0-alpha3-dev","description":"FILES_JOOMLA_XML_DESCRIPTION","group":""}'; public $params = ''; public $checked_out = NULL; public $checked_out_time = NULL; public $ordering = 0; public $state = 0; public $note = NULL }; public $message = NULL; public $manifest = class SimpleXMLElement { public $@attributes = [...]; public $name = 'files_joomla'; public $author = 'Joomla! Project'; public $authorEmail = 'admin@joomla.org'; public $authorUrl = 'www.joomla.org'; public $copyright = '(C) 2019 Open Source Matters, Inc.'; public $license = 'GNU General Public License version 2 or later; see LICENSE.txt'; public $version = '5.0.0-alpha3-dev'; public $creationDate = '2023-06'; public $description = 'FILES_JOOMLA_XML_DESCRIPTION'; public $scriptfile = 'administrator/components/com_admin/script.php'; public $update = class SimpleXMLElement { ... }; public $fileset = class SimpleXMLElement { ... }; public $updateservers = class SimpleXMLElement { ... } }; protected $extension_message = NULL; protected $redirect_url = NULL; protected $packageUninstall = FALSE; public $extraQuery = ''; private $databaseAwareTraitDatabase = class Joomla\Database\Mysqli\MysqliDriver { private ${Joomla\Database\DatabaseDriver}database = 'joomladb3'; public $name = 'mysqli'; public $serverType = 'mysql'; protected $connection = class mysqli { ... }; protected $count = 40; protected $cursor = NULL; protected $executed = TRUE; protected $limit = 0; protected $nameQuote = '`'; protected $nullDate = '0000-00-00 00:00:00'; protected $offset = 0; protected $options = [...]; protected $sql = class Joomla\Database\Mysqli\MysqliQuery { ... }; protected $statement = class Joomla\Database\Mysqli\MysqliStatement { ... }; protected $tablePrefix = 'j3ux0_'; protected $utf = TRUE; protected $errorNum = 0; protected $errorMsg = NULL; protected $transactionDepth = 1; protected $factory = class Joomla\Database\DatabaseFactory { ... }; protected $monitor = NULL; private ${Joomla\Database\DatabaseDriver}dispatcher = class Joomla\Event\Dispatcher { ... }; protected $utf8mb4 = TRUE; protected $mariadb = FALSE } }) /administrator/components/com_joomlaupdate/src/Model/UpdateModel.php:778
PHP  12. JoomlaInstallerScript->uninstallExtensions() /administrator/components/com_admin/script.php:93
PHP  13. Joomla\CMS\Installer\Installer->uninstall($type = 'plugin', $identifier = 192) /administrator/components/com_admin/script.php:274
PHP  14. Joomla\CMS\Plugin\PluginHelper::importPlugin($type = 'extension', $plugin = *uninitialized*, $autocreate = *uninitialized*, $dispatcher = *uninitialized*) /libraries/src/Installer/Installer.php:866
PHP  15. Joomla\CMS\Plugin\PluginHelper::import($plugin = class stdClass { public $type = 'extension'; public $name = 'joomla'; public $params = ''; public $id = 119 }, $autocreate = TRUE, $dispatcher = class Joomla\Event\Dispatcher { protected $events = []; protected $listeners = ['session.start' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onBeforeCompileHead' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onLoadShortcuts' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onContentAfterSave' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onContentAfterDelete' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onContentChangeState' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onApplicationAfterSave' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onExtensionAfterInstall' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onExtensionAfterUninstall' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onExtensionAfterUpdate' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onExtensionAfterSave' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onExtensionAfterDelete' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onUserAfterSave' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onUserAfterDelete' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onUserAfterSaveGroup' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onUserAfterDeleteGroup' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onUserAfterLogin' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onUserLoginFailure' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onUserLogout' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onUserAfterRemind' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onAfterCheckin' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onAfterLogPurge' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onAfterLogExport' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onAfterPurge' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onAfterDispatch' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onJoomlaAfterUpdate' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onUserAfterResetRequest' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onUserAfterResetComplete' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onAfterInitialise' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onContentPrepareForm' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onContentPrepareData' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onAfterRespond' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onAjaxDebug' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onBeforeRespond' => class Joomla\Event\ListenersPriorityQueue { ... }, 'application.after_respond' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onAfterDisconnect' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onContentNormaliseRequestData' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onContentAfterTitle' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onContentBeforeDisplay' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onContentAfterDisplay' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onContentPrepare' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onFinderResult' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onAfterRender' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onUserBeforeSave' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onTaskExecuteSuccess' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onTaskExecuteFailure' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onTaskRoutineNotFound' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onTaskRecoverFailure' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onInstallerAddInstallationTab' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onExtensionBeforeUpdate' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onJoomlaBeforeUpdate' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onInstallerBeforeInstaller' => class Joomla\Event\ListenersPriorityQueue { ... }, 'onInstallerAfterInstaller' => class Joomla\Event\ListenersPriorityQueue { ... }] }) /libraries/src/Plugin/PluginHelper.php:192
PHP  16. Joomla\CMS\Application\ConsoleApplication->bootPlugin($plugin = 'joomla', $type = 'extension') /libraries/src/Plugin/PluginHelper.php:232
PHP  17. Joomla\CMS\Application\ConsoleApplication->loadExtension($type = 'Joomla\\CMS\\Extension\\PluginInterface', $extensionName = 'joomla:extension', $extensionPath = '/plugins/extension/joomla') /libraries/src/Extension/ExtensionManagerTrait.php:99
PHP  18. Joomla\DI\Container->get($resourceName = 'Joomla\\CMS\\Extension\\PluginInterface') /libraries/src/Extension/ExtensionManagerTrait.php:177
PHP  19. Joomla\DI\ContainerResource->getInstance() /libraries/vendor/joomla/di/src/Container.php:96
PHP  20. {anonymous-class:/plugins/extension/joomla/services/provider.php:21-46}->{closure:/plugins/extension/joomla/services/provider.php:35-43}($container = class Joomla\DI\Container { protected $aliases = []; protected $resources = ['Joomla\CMS\Extension\PluginInterface' => class Joomla\DI\ContainerResource { ... }]; protected $parent = class Joomla\DI\Container { protected $aliases = [...]; protected $resources = [...]; protected $parent = NULL; protected $tags = [...] }; protected $tags = [] }) /libraries/vendor/joomla/di/src/ContainerResource.php:182
 8/8 -- Cleaning up ...                                                                                                                        
 [OK] Joomla core updated successfully!

Am using PHP 8.1.

I've tested with this PR and PR #41127 applied at the 4.4-dev branch and with a 5.0-dev update package which contain the changes of these 2 PRs plus the changes from PR #41118 , so I could be sure all other issues are fixed also after the update.

You can find such a package here https://test5.richard-fath.de/Joomla_5.0.0-alpha3-dev-Development-Update_Package_2023-07-10_test-prs-41117-41127-41118.zip , and you can use the custom update URL https://test5.richard-fath.de/next_major_list_test-prs-41117-41127-41118.xml to update to that package.

The issue seems to happen when the script.php which is already the updated one from 5.0-dev uninstalls the obsolete demo tasks plugin.

The necessary fix might be somewhere in the extensions installer and might be similar to the fix you have applied in the InstallerHelper.php file here in this PR.

avatar alikon
alikon - comment - 10 Jul 2023

i can confirm your findings, still looking for the root cause...

avatar alikon
alikon - comment - 10 Jul 2023

it's still draft but... worth a review
19004f9

avatar MacJoom
MacJoom - comment - 21 Jul 2023

@alikon what is the status of this PR?

avatar MacJoom MacJoom - change - 23 Jul 2023
Labels Added: bug
avatar MacJoom MacJoom - change - 23 Jul 2023
Status Pending Fixed in Code Base
Closed_Date 0000-00-00 00:00:00 2023-07-23 17:42:21
Closed_By MacJoom
avatar MacJoom MacJoom - close - 23 Jul 2023
avatar MacJoom MacJoom - merge - 23 Jul 2023
avatar alikon
alikon - comment - 1 Aug 2023

@MacJoom thanks

Add a Comment

Login with GitHub to post a comment