Closed
Description
Symfony version(s) affected
5.3.11
Description
After upgrading symfony/serializer
from 5.3.10
to 5.3.11
Seralizer starts to access special $initializer<id>
property in proxies generated by Doctrine instead of letting the proxy initialize with actual objects.
How to reproduce
Edit: Use this repository to reproduce: https://github.com/IonBazan/serializer-proxy-bug
When Serializing a Doctrine ODM document with ReferenceMany
or ReferenceOne
, PropertyAccessor
is trying to access a special $initializer<id>
property.
Create 2 documents and make one of them reference the other. Now try to serialize the referencing document.
Following error should occur:
Undefined property: App\Domain\Document\Security\User::$initializer426f5 in /<redacted>/vendor/symfony/property-access/PropertyAccessor.php on line 473
ErrorException:
User Notice: Undefined property: App\Domain\Document\Security\User::$initializer426f5 in /<redacted>/vendor/symfony/property-access/PropertyAccessor.php on line 473
at var/cache/dev/doctrine/odm/mongodb/Proxies/MongoDBODMProxies__PM__AppDomainDocumentSecurityUserGenerated0ca55a35e3ea298c1fbe2a3466d2e5dc.php:210
at MongoDBODMProxies\__PM__\App\Domain\Document\Security\User\Generated0ca55a35e3ea298c1fbe2a3466d2e5dc->__get('initializer426f5')
(vendor/symfony/property-access/PropertyAccessor.php:473)
at Symfony\Component\PropertyAccess\PropertyAccessor->readProperty(array(object(Generated0ca55a35e3ea298c1fbe2a3466d2e5dc)), 'initializer426f5', false)
(vendor/symfony/property-access/PropertyAccessor.php:154)
at Symfony\Component\PropertyAccess\PropertyAccessor->getValue(object(Generated0ca55a35e3ea298c1fbe2a3466d2e5dc), 'initializer426f5')
(vendor/symfony/serializer/Normalizer/ObjectNormalizer.php:148)
at Symfony\Component\Serializer\Normalizer\ObjectNormalizer->getAttributeValue(object(Generated0ca55a35e3ea298c1fbe2a3466d2e5dc), 'initializer426f5', 'json', array('cache_key' => '8bae177454fb7ad4c74be899646036e2', 'circular_reference_limit_counters' => array('00000000046ab22e000000000059cf16' => 1, '00000000046a84a4000000000059cf16' => 1)))
(vendor/symfony/serializer/Normalizer/AbstractObjectNormalizer.php:179)
at Symfony\Component\Serializer\Normalizer\AbstractObjectNormalizer->normalize(object(Generated0ca55a35e3ea298c1fbe2a3466d2e5dc), 'json', array('cache_key' => '8bae177454fb7ad4c74be899646036e2', 'circular_reference_limit_counters' => array('00000000046ab22e000000000059cf16' => 1, '00000000046a84a4000000000059cf16' => 1)))
(vendor/symfony/serializer/Serializer.php:154)
at Symfony\Component\Serializer\Serializer->normalize(object(Generated0ca55a35e3ea298c1fbe2a3466d2e5dc), 'json', array('cache_key' => '8bae177454fb7ad4c74be899646036e2', 'circular_reference_limit_counters' => array('00000000046ab22e000000000059cf16' => 1)))
(vendor/symfony/serializer/Normalizer/AbstractObjectNormalizer.php:207)
at Symfony\Component\Serializer\Normalizer\AbstractObjectNormalizer->normalize(object(Log), 'json', array('cache_key' => '8bae177454fb7ad4c74be899646036e2', 'circular_reference_limit_counters' => array('00000000046ab22e000000000059cf16' => 1)))
(vendor/symfony/serializer/Serializer.php:154)
at Symfony\Component\Serializer\Serializer->normalize(object(Log), 'json', array())
(vendor/symfony/serializer/Serializer.php:168)
at Symfony\Component\Serializer\Serializer->normalize(array(object(Log), object(Log), object(Log), object(Log), object(Log), object(Log), object(Log), object(Log), object(Log), object(Log)), 'json', array())
(vendor/symfony/serializer/Serializer.php:127)
at Symfony\Component\Serializer\Serializer->serialize(array(object(Log), object(Log), object(Log), object(Log), object(Log), object(Log), object(Log), object(Log), object(Log), object(Log)), 'json')
(src/Http/Controller/DashboardController.php:20)
at App\Http\Controller\DashboardController->__invoke(object(LogRepository), object(Serializer))
(vendor/symfony/http-kernel/HttpKernel.php:156)
at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 1)
(vendor/symfony/http-kernel/HttpKernel.php:78)
at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 1, true)
(vendor/symfony/http-kernel/Kernel.php:199)
at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
(vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php:37)
at Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run()
(vendor/autoload_runtime.php:35)
Possible Solution
No response
Additional Context
No response