Details
-
Type:
Bug
-
Status: Closed (View Workflow)
-
Priority:
Critical
-
Resolution:
Out of Date
-
Affects Version/s: 3.0.0.Final
-
Fix Version/s: None
-
Component/s: Builders
-
Labels:None
-
Environment:MacOS X 10.7 (apple jdk 6) with Arquillian and weld-ee-embedded-1.1 container or JBoss AS 7
-
Steps to Reproduce:
Description
I wrote a bean like this one :
@MyQualifier
|
public class MyBean { |
|
|
@Inject |
InjectionPoint ip;
|
|
|
public String saySomething() { |
String value = ""; |
if (ip != null) |
value = ip.getAnnotated().getAnnotation(MyQualifier.class).value(); |
return "Hello CDI World " + value; |
}
|
}
|
with MyQualifier being a simple qualifier with a non binding parameter value.
And I wrote an extension which register another version of this bean without Qualifier
public class MyExtension implements Extension { |
|
|
@SuppressWarnings({ "unchecked", "rawtypes" }) |
public void afterBeanDiscovery(@Observes AfterBeanDiscovery abd, BeanManager bm) { |
|
|
AnnotatedTypeBuilder annoBuilder = new AnnotatedTypeBuilder().readFromType(MyBean.class).removeFromClass( |
MyQualifier.class); |
AnnotatedType myAnnotatedType = annoBuilder.create();
|
|
|
BeanBuilder beanBuilder = new BeanBuilder(bm).readFromType(myAnnotatedType); |
abd.addBean(beanBuilder.create());
|
}
|
}
|
When bootstrapping Weld I have the following exception :
org.jboss.weld.exceptions.DefinitionException: WELD-001405 Cannot inject [field] @Inject org.jboss.solderbug.MyBean.ip in a class which isnt a bean
|
at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:280)
|
at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:139)
|
at org.jboss.weld.bootstrap.Validator.validateBeans(Validator.java:389)
|
at org.jboss.weld.bootstrap.Validator.validateDeployment(Validator.java:371)
|
at org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:390)
|
at org.jboss.arquillian.container.weld.ee.embedded_1_1.mock.TestContainer.startContainer(TestContainer.java:257)
|
at org.jboss.arquillian.container.weld.ee.embedded_1_1.WeldEEMockContainer.deploy(WeldEEMockContainer.java:98)
|
...
|
If I comment the @Inject line in the bean everything is fine and I can use both version of the bean (with or without qualifier)
I'm not sure if this has changed recently or not, but would you please try Beta4 and see if it's still a problem?