<p dir="auto">There appears to be both</p>
<p dir="auto"><code class="notranslate">FrameworkBundle\Tests\Debug\TraceableEventDispatcherTest</code><br>
<code class="notranslate">FrameworkBundle\Tests\Debug\TraceableEventDispactherTest</code></p>
<p dir="auto">One has a stopwatch and one doesn't.  I'm guessing this is an error?  The issue is the spelling of dispatch <code class="notranslate">tch</code> vs <code class="notranslate">cth</code></p>
<p dir="auto">Start with these two Documents:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="
namespace My\XBundle\Document;

use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;

/**
 * @MongoDB\Document
 * @MongoDB\InheritanceType(&quot;COLLECTION_PER_CLASS&quot;)
 */
abstract class AbstractFoo
{
    /**
     * @MongoDB\Id
     */
    protected $id;

    /**
     * @MongoDB\String
     */
    protected $displayName;
}"><pre lang="php&lt;?php" class="notranslate"><code class="notranslate">
namespace My\XBundle\Document;

use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;

/**
 * @MongoDB\Document
 * @MongoDB\InheritanceType("COLLECTION_PER_CLASS")
 */
abstract class AbstractFoo
{
    /**
     * @MongoDB\Id
     */
    protected $id;

    /**
     * @MongoDB\String
     */
    protected $displayName;
}
</code></pre></div>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="
namespace My\XBundle\Document;

use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;

/**
 * @MongoDB\Document
 */
class SubFoo extends AbstractFoo
{
    /**
     * @MongoDB\String
     */
    protected $value;
}"><pre lang="php&lt;?php" class="notranslate"><code class="notranslate">
namespace My\XBundle\Document;

use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;

/**
 * @MongoDB\Document
 */
class SubFoo extends AbstractFoo
{
    /**
     * @MongoDB\String
     */
    protected $value;
}
</code></pre></div>
<p dir="auto">Now, when you run <code class="notranslate">mongodb:generate:documents My\XBundle</code>, you will end up with this in the subclass:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="
namespace My\XBundle\Document;

use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;

/**
 * @MongoDB\Document
 */
class SubFoo extends AbstractFoo
{
    /**
     * @MongoDB\String
     */
    protected $value;

    /**
     * @var $id
     */
    protected $id;

    /**
     * @var string $displayName
     */
    protected $displayName;


    /**
     * Set value
     *
     * @param string $value
     */
    public function setValue($value)
    {
        $this-&gt;value = $value;
    }

    /**
     * Get value
     *
     * @return string $value
     */
    public function getValue()
    {
        return $this-&gt;value;
    }

    /**
     * Get id
     *
     * @return id $id
     */
    public function getId()
    {
        return $this-&gt;id;
    }

    /**
     * Set displayName
     *
     * @param string $displayName
     */
    public function setDisplayName($displayName)
    {
        $this-&gt;displayName = $displayName;
    }

    /**
     * Get displayName
     *
     * @return string $displayName
     */
    public function getDisplayName()
    {
        return $this-&gt;displayName;
    }
}"><pre lang="php&lt;?php" class="notranslate"><code class="notranslate">
namespace My\XBundle\Document;

use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;

/**
 * @MongoDB\Document
 */
class SubFoo extends AbstractFoo
{
    /**
     * @MongoDB\String
     */
    protected $value;

    /**
     * @var $id
     */
    protected $id;

    /**
     * @var string $displayName
     */
    protected $displayName;


    /**
     * Set value
     *
     * @param string $value
     */
    public function setValue($value)
    {
        $this-&gt;value = $value;
    }

    /**
     * Get value
     *
     * @return string $value
     */
    public function getValue()
    {
        return $this-&gt;value;
    }

    /**
     * Get id
     *
     * @return id $id
     */
    public function getId()
    {
        return $this-&gt;id;
    }

    /**
     * Set displayName
     *
     * @param string $displayName
     */
    public function setDisplayName($displayName)
    {
        $this-&gt;displayName = $displayName;
    }

    /**
     * Get displayName
     *
     * @return string $displayName
     */
    public function getDisplayName()
    {
        return $this-&gt;displayName;
    }
}
</code></pre></div>