From a2fd4eca372cfd96dffd28bda9218b6ae942b476 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Somfai=20M=C3=A1ty=C3=A1s?= Date: Wed, 4 Apr 2012 14:47:42 +0200 Subject: [PATCH] Fixing a bug when calling setDiscriminatorMap from multiple sources (ie: from Events::loadClassMetadata and annotation). --- lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php b/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php index b36b7121e..80498b737 100644 --- a/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php +++ b/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php @@ -2044,7 +2044,7 @@ class ClassMetadataInfo implements ClassMetadata if ( ! class_exists($className)) { throw MappingException::invalidClassInDiscriminatorMap($className, $this->name); } - if (is_subclass_of($className, $this->name)) { + if (is_subclass_of($className, $this->name) && ! in_array($className, $this->subClasses)) { $this->subClasses[] = $className; } }