Skip to content

[4.4] update to 5 from cli#41117

Merged
MacJoom merged 3 commits intojoomla:4.4-devfrom
alikon:patch-4
Jul 23, 2023
Merged

[4.4] update to 5 from cli#41117
MacJoom merged 3 commits intojoomla:4.4-devfrom
alikon:patch-4

Conversation

@alikon
Copy link
Contributor

@alikon alikon commented Jul 6, 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

@alikon alikon changed the title Fix Indirect Modification of Overloaded Property [4.4] update to 5 from cli Jul 6, 2023
@alikon alikon marked this pull request as ready for review July 6, 2023 10:02
@alikon alikon requested review from rdeutz and zero-24 as code owners July 6, 2023 10:02
@alikon alikon mentioned this pull request Jul 6, 2023
@brianteeman
Copy link
Contributor

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.

@brianteeman brianteeman mentioned this pull request Jul 7, 2023
@richard67 richard67 added the bug label Jul 8, 2023
@richard67
Copy link
Member

richard67 commented Jul 8, 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.

@alikon
Copy link
Contributor Author

alikon commented Jul 10, 2023

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

@alikon
Copy link
Contributor Author

alikon commented Jul 10, 2023

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

@MacJoom MacJoom self-assigned this Jul 21, 2023
@MacJoom
Copy link
Contributor

MacJoom commented Jul 21, 2023

@alikon what is the status of this PR?

@MacJoom MacJoom merged commit f8ab092 into joomla:4.4-dev Jul 23, 2023
@MacJoom MacJoom added this to the Joomla! 4.4.0 milestone Jul 23, 2023
@alikon
Copy link
Contributor Author

alikon commented Aug 1, 2023

@MacJoom thanks

@alikon alikon deleted the patch-4 branch August 1, 2023 08:23
GeraintEdwards pushed a commit to GeraintEdwards/joomla-cms that referenced this pull request Aug 14, 2023
* Fix Indirect Modification of Overloaded Property

* file_exists

---------
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants