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





_______________________________________________
weld-dev mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/weld-dev

Reply via email to