title: 'Instantiation of bean failed; Is it an abstract class?' When trying to instantiate a bean with an abstract parent
body: <p>I'm trying to instantiate a bean, without a class definition, on Spring context by inheriting a parent bean, which is abstract. Like this:</p>
  
  <pre><code>&lt;bean id="childBean" parent="abstractBean"&gt;
      ...
  &lt;/bean&gt;
  
  &lt;bean id="abstractBean" class="com.java.bean.AbstractBeanClass" 
          abstract="true" /&gt;
  </code></pre>
  
  <p>But Spring is giving me the following error message:</p>
  
  <pre><code>Error creating bean with name 'childBean' defined in class path resource 
      [project-spring.xml]: 
  Instantiation of bean failed; nested exception is 
      org.springframework.beans.BeanInstantiationException: 
  Could not instantiate bean class [com.java.bean.AbstractBeanClass]: 
  Is it an abstract class?;
  nested exception is java.lang.InstantiationException
  ...
  </code></pre>
  
  <p><s>I remember having this in another project, and it works perfectly.</s><br>
  I remember having this in the same project, and it works perfectly.  </p>
  
  <p>What am I missing here?</p>
  
  <p><strong>UPDATE 1</strong>
  Found another bean being intatiated exactly like the way I mentioned:</p>
  
  <pre><code>&lt;bean id="variantOptionDataConverter" parent="abstractPopulatingConverter"&gt;
      ...
  &lt;/bean&gt;
  </code></pre>
  
  <p><strong>UPDATE 2</strong><br>
  Declaration of the Abstract class:</p>
  
  <pre><code>public abstract class AbstractBeanClass&lt;SOURCE, TARGET&gt;
          extends AbstractConverter&lt;SOURCE, TARGET&gt;
          implements PopulatorList&lt;SOURCE, TARGET&gt;
  {
  ...
  }
  </code></pre>
  
  <p>Note: There's other classes that extends this class. None of the "other spring beans that works" I mentioned above extends this class.</p>
  
  <p>Note 2: I know that it's weird, and, by Java fundamentals, it should not work (like everyone mentioned). But, I don't know how, the other Spring beans are being put in the context. I tried to copy the "other spring beans that work" into my code, change some duplicated names, and it worked. And, that's what I'm trying to understand...</p>