[weld-dev] superclass in WeldClassImpl

Ales Justin ales.justin at gmail.com
Thu Jul 19 10:14:32 EDT 2012


I remember discussing this once with Pete,
but forgot what the discussion's end result was. :-)

On Jul 19, 2012, at 4:10 PM, Marko Lukša wrote:

> Hey guys.
> 
> Anyone know why WeldClassImpl sets superclass to Object.class for some 
> classes? This causes weld not to inject fields, declared in 
> superclasses, where the annotatedType is supplied by an extension. (OK, 
> not in all cases, only in cases where the annotatedType is detected as 
> being modified). See https://issues.jboss.org/browse/WELD-1144
> 
> Take a look at 
> https://github.com/weld/core/blob/master/impl/src/main/java/org/jboss/weld/introspector/jlr/WeldClassImpl.java#L137
> 
> I'm thinking of changing this to something along the lines of:
> 
>     this.superclass = 
> classTransformer.loadClass(annotatedType.getJavaClass().getSuperclass());
> 
> This change does break two tests (SuperTypeTest and 
> SuperclassModifiedTest), but IMO for these two tests to pass, we should 
> change Beans.getFieldInjectionPoints() so it returns only the fields 
> that were returned by AnnotatedType.getFields().
> 
> Is there any other reason why WeldClassImpl would need to set 
> this.superclass to Object.class?
> 
> Marko




More information about the weld-dev mailing list