[weld-dev] superclass in WeldClassImpl

Marko Lukša marko.luksa at gmail.com
Thu Jul 19 10:10:41 EDT 2012


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