Closed
Description
Symfony version(s) affected: 4.3.0
Description
Upgrading from 4.2.9 to 4.3.0 introduced a bug in one of my projects.
Trying the sym43 branch below results in
In PropertyMetadata.php line 40:
Property "ticketNumber" does not exist in class "App\Entity\CommentInterface"
It seems that because i use resolve_target_entities
for my comments the validator is trying to validate the interface and not the actual class.
without resolve_target_entities
it's back to normal (see branch sym43-without-interface)
How to reproduce
clone repo
git clone [email protected]:Selion05/symfony43-validator-bug.git && cd symfony43-validator-bug
# works
git checkout sym42 && composer install
php bin/console test
# throws validator exception
git checkout sym43 && composer install
php bin/console test
# works
git checkout sym43-without-interface
php bin/console test
Additional context
debug output
$ php bin/console test -vvv
2019-05-30T19:34:29+00:00 [debug] Notified event "console.command" to listener "Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure".
2019-05-30T19:34:29+00:00 [error] Error thrown while running command "test -vvv". Message: "Property "ticketNumber" does not exist in class "App\Entity\CommentInterface""
2019-05-30T19:34:29+00:00 [debug] Notified event "console.error" to listener "Symfony\Bundle\FrameworkBundle\EventListener\SuggestMissingPackageSubscriber::onConsoleError".
2019-05-30T19:34:29+00:00 [debug] Notified event "console.error" to listener "Symfony\Component\Console\EventListener\ErrorListener::onConsoleError".
2019-05-30T19:34:29+00:00 [debug] Command "test -vvv" exited with code "1"
2019-05-30T19:34:29+00:00 [debug] Notified event "console.terminate" to listener "Symfony\Component\Console\EventListener\ErrorListener::onConsoleTerminate".
In PropertyMetadata.php line 40:
[Symfony\Component\Validator\Exception\ValidatorException]
Property "ticketNumber" does not exist in class "App\Entity\CommentInterface"
Exception trace:
() at /home/leo/projects/sym43bug/vendor/symfony/validator/Mapping/PropertyMetadata.php:40
Symfony\Component\Validator\Mapping\PropertyMetadata->__construct() at /home/leo/projects/sym43bug/vendor/symfony/validator/Mapping/ClassMetadata.php:216
Symfony\Component\Validator\Mapping\ClassMetadata->addPropertyConstraint() at /home/leo/projects/sym43bug/vendor/symfony/doctrine-bridge/Validator/DoctrineLoader.php:81
Symfony\Bridge\Doctrine\Validator\DoctrineLoader->loadClassMetadata() at /home/leo/projects/sym43bug/vendor/symfony/validator/Mapping/Loader/LoaderChain.php:54
Symfony\Component\Validator\Mapping\Loader\LoaderChain->loadClassMetadata() at /home/leo/projects/sym43bug/vendor/symfony/validator/Mapping/Factory/LazyLoadingMetadataFactory.php:105
Symfony\Component\Validator\Mapping\Factory\LazyLoadingMetadataFactory->getMetadataFor() at /home/leo/projects/sym43bug/vendor/symfony/validator/Mapping/Factory/LazyLoadingMetadataFactory.php:148
Symfony\Component\Validator\Mapping\Factory\LazyLoadingMetadataFactory->mergeConstraints() at /home/leo/projects/sym43bug/vendor/symfony/validator/Mapping/Factory/LazyLoadingMetadataFactory.php:113
Symfony\Component\Validator\Mapping\Factory\LazyLoadingMetadataFactory->getMetadataFor() at /home/leo/projects/sym43bug/vendor/symfony/validator/Validator/RecursiveContextualValidator.php:316
Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateObject() at /home/leo/projects/sym43bug/vendor/symfony/validator/Validator/RecursiveContextualValidator.php:141
Symfony\Component\Validator\Validator\RecursiveContextualValidator->validate() at /home/leo/projects/sym43bug/vendor/symfony/validator/Validator/RecursiveValidator.php:100
Symfony\Component\Validator\Validator\RecursiveValidator->validate() at /home/leo/projects/sym43bug/src/Command/TestCommand.php:56
App\Command\TestCommand->execute() at /home/leo/projects/sym43bug/vendor/symfony/console/Command/Command.php:255
Symfony\Component\Console\Command\Command->run() at /home/leo/projects/sym43bug/vendor/symfony/console/Application.php:939
Symfony\Component\Console\Application->doRunCommand() at /home/leo/projects/sym43bug/vendor/symfony/framework-bundle/Console/Application.php:87
Symfony\Bundle\FrameworkBundle\Console\Application->doRunCommand() at /home/leo/projects/sym43bug/vendor/symfony/console/Application.php:273
Symfony\Component\Console\Application->doRun() at /home/leo/projects/sym43bug/vendor/symfony/framework-bundle/Console/Application.php:73
Symfony\Bundle\FrameworkBundle\Console\Application->doRun() at /home/leo/projects/sym43bug/vendor/symfony/console/Application.php:149
Symfony\Component\Console\Application->run() at /home/leo/projects/sym43bug/bin/console:42