- Issue created by @AaronBauman
- 🇺🇸United States AaronBauman Philadelphia
Here's a stack dump.
In my case, the invocation of CurrentCountry originates from a route rebuild of a views data export display that includes a price field.
TypeError: SplObjectStorage::contains(): Argument #1 ($object) must be of type object, null given in ~/web/modules/contrib/commerce/src/CurrentCountry.php on line 45 #0 ~/web/modules/contrib/commerce/src/CurrentCountry.php(45): SplObjectStorage->contains(NULL) #1 ~/web/modules/contrib/commerce/src/Resolver/DefaultLocaleResolver.php(37): Drupal\commerce\CurrentCountry->getCountry() #2 ~/web/modules/contrib/commerce/src/Resolver/ChainLocaleResolver.php(46): Drupal\commerce\Resolver\DefaultLocaleResolver->resolve() #3 ~/web/modules/contrib/commerce/src/CurrentLocale.php(46): Drupal\commerce\Resolver\ChainLocaleResolver->resolve() #4 ~/web/modules/contrib/commerce/modules/price/src/CurrencyFormatter.php(29): Drupal\commerce\CurrentLocale->getLocale() #5 [internal function]: Drupal\commerce_price\CurrencyFormatter->__construct(Object(Drupal\commerce_price\Repository\NumberFormatRepository), Object(Drupal\commerce_price\Repository\CurrencyRepository), Object(Drupal\commerce\CurrentLocale)) #6 ~/vendor/symfony/dependency-injection/ContainerBuilder.php(1142): ReflectionClass->newInstanceArgs(Array) #7 ~/vendor/symfony/dependency-injection/ContainerBuilder.php(586): Symfony\Component\DependencyInjection\ContainerBuilder->createService(Object(Symfony\Component\DependencyInjection\Definition), Array, true, 'commerce_price....') #8 ~/vendor/symfony/dependency-injection/ContainerBuilder.php(1260): Symfony\Component\DependencyInjection\ContainerBuilder->doGet('commerce_price....', 1, Array, true) #9 ~/vendor/symfony/dependency-injection/ContainerBuilder.php(1212): Symfony\Component\DependencyInjection\ContainerBuilder->doResolveServices(Object(Symfony\Component\DependencyInjection\Reference), Array, true) #10 ~/vendor/symfony/dependency-injection/ContainerBuilder.php(1112): Symfony\Component\DependencyInjection\ContainerBuilder->doResolveServices(Array, Array, true) #11 ~/vendor/symfony/dependency-injection/ContainerBuilder.php(1262): Symfony\Component\DependencyInjection\ContainerBuilder->createService(Object(Symfony\Component\DependencyInjection\Definition), Array, true) #12 ~/vendor/symfony/dependency-injection/ContainerBuilder.php(1212): Symfony\Component\DependencyInjection\ContainerBuilder->doResolveServices(Object(Symfony\Component\DependencyInjection\Definition), Array, true) #13 ~/vendor/symfony/dependency-injection/ContainerBuilder.php(1212): Symfony\Component\DependencyInjection\ContainerBuilder->doResolveServices(Array, Array, true) #14 ~/vendor/symfony/dependency-injection/ContainerBuilder.php(1112): Symfony\Component\DependencyInjection\ContainerBuilder->doResolveServices(Array, Array, true) #15 ~/vendor/symfony/dependency-injection/ContainerBuilder.php(586): Symfony\Component\DependencyInjection\ContainerBuilder->createService(Object(Symfony\Component\DependencyInjection\Definition), Array, true, 'serializer') #16 ~/vendor/symfony/dependency-injection/ContainerBuilder.php(531): Symfony\Component\DependencyInjection\ContainerBuilder->doGet('serializer', 1) #17 ~/web/modules/contrib/views_data_export/src/Plugin/views/style/DataExport.php(52): Symfony\Component\DependencyInjection\ContainerBuilder->get('serializer') #18 ~/web/core/lib/Drupal/Core/Plugin/Factory/ContainerFactory.php(21): Drupal\views_data_export\Plugin\views\style\DataExport::create(Object(Drupal\Core\DependencyInjection\ContainerBuilder), Array, 'data_export', Array) #19 ~/web/core/lib/Drupal/Component/Plugin/PluginManagerBase.php(83): Drupal\Core\Plugin\Factory\ContainerFactory->createInstance('data_export', Array) #20 ~/web/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php(824): Drupal\Component\Plugin\PluginManagerBase->createInstance('data_export') #21 ~/web/core/modules/rest/src/Plugin/views/display/RestExport.php(351): Drupal\views\Plugin\views\display\DisplayPluginBase->getPlugin('style') #22 ~/web/core/modules/views/src/EventSubscriber/RouteSubscriber.php(120): Drupal\rest\Plugin\views\display\RestExport->collectRoutes(Object(Symfony\Component\Routing\RouteCollection)) #23 [internal function]: Drupal\views\EventSubscriber\RouteSubscriber->routes() #24 ~/web/core/lib/Drupal/Core/Routing/RouteBuilder.php(146): call_user_func(Array) #25 ~/web/core/lib/Drupal/Core/ProxyClass/Routing/RouteBuilder.php(83): Drupal\Core\Routing\RouteBuilder->rebuild() #26 ~/web/core/includes/common.inc(485): Drupal\Core\ProxyClass\Routing\RouteBuilder->rebuild() #27 ~/vendor/drush/drush/src/Commands/core/UpdateDBCommands.php(87): drupal_flush_all_caches() #28 [internal function]: Drush\Commands\core\UpdateDBCommands->updatedb(Array) #29 ~/vendor/consolidation/annotated-command/src/CommandProcessor.php(276): call_user_func_array(Array, Array) #30 ~/vendor/consolidation/annotated-command/src/CommandProcessor.php(212): Consolidation\AnnotatedCommand\CommandProcessor->runCommandCallback(Array, Object(Consolidation\AnnotatedCommand\CommandData)) #31 ~/vendor/consolidation/annotated-command/src/CommandProcessor.php(175): Consolidation\AnnotatedCommand\CommandProcessor->validateRunAndAlter(Array, Array, Object(Consolidation\AnnotatedCommand\CommandData)) #32 ~/vendor/consolidation/annotated-command/src/AnnotatedCommand.php(387): Consolidation\AnnotatedCommand\CommandProcessor->process(Object(Symfony\Component\Console\Output\ConsoleOutput), Array, Array, Object(Consolidation\AnnotatedCommand\CommandData)) #33 ~/vendor/symfony/console/Command/Command.php(326): Consolidation\AnnotatedCommand\AnnotatedCommand->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #34 ~/vendor/symfony/console/Application.php(1096): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #35 ~/vendor/symfony/console/Application.php(324): Symfony\Component\Console\Application->doRunCommand(Object(Consolidation\AnnotatedCommand\AnnotatedCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #36 ~/vendor/symfony/console/Application.php(175): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #37 ~/vendor/drush/drush/src/Runtime/Runtime.php(110): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #38 ~/vendor/drush/drush/src/Runtime/Runtime.php(40): Drush\Runtime\Runtime->doRun(Array, Object(Symfony\Component\Console\Output\ConsoleOutput)) #39 ~/vendor/drush/drush/drush.php(139): Drush\Runtime\Runtime->run(Array) #40 ~/vendor/drush/drush/drush(4): require('/Users/bauman/S...') #41 ~/vendor/bin/drush(120): include('/Users/bauman/S...') #42 {main} TypeError: SplObjectStorage::contains(): Argument #1 ($object) must be of type object, null given in SplObjectStorage->contains() (line 45 of ~/web/modules/contrib/commerce/src/CurrentCountry.php).
- 🇺🇸United States AaronBauman Philadelphia
Here's a patch.
Uses exact same approach as patch from 🐛 SplObjectStorage::contains(): Argument #1 ($object) must be of type object, null given Fixed - Merge request !467Issue #3535282 by aaronbauman: SplObjectStorage::contains(): Argument #1... → (Merged) created by AaronBauman
- First commit to issue fork.
-
jsacksick →
committed 562b6a3f on 3.x authored by
aaronbauman →
Issue #3535282 by aaronbauman: SplObjectStorage::contains(): Argument #1...
-
jsacksick →
committed 562b6a3f on 3.x authored by
aaronbauman →