Arjan Tijms created OWB-893: ------------------------------- Summary: OpenWebBeans 1.2.1 fails when injecting generic value holder Key: OWB-893 URL: https://issues.apache.org/jira/browse/OWB-893 Project: OpenWebBeans Issue Type: Bug Components: Injection and Lookup Affects Versions: 1.2.1 Reporter: Arjan Tijms
In OmniFaces we're using a producer method with the following signature: {code} @Produces @Param public <V> ParamValue<V> produce(InjectionPoint injectionPoint) {code} Injection then takes place into a bean as follows: {code} @Inject @Param private ParamValue<String> text1; {code} {{@Param}} is a qualifier with only non-binding attributes. See [RequestParameterProducer|https://code.google.com/p/omnifaces/source/browse/src/org/omnifaces/cdi/param/RequestParameterProducer.java] and [Param|https://code.google.com/p/omnifaces/source/browse/src/org/omnifaces/cdi/Param.java] This works in all versions of Weld that we tested on and in OpenWebBeans 1.1.8 (TomEE 1.5.2.). Unfortunately it does not work with OpenWebBeans 1.2.1-SNAPSHOT (TomEE 1.6.0-SNAPSHOT). The problem seems to be that 1.2.1 has added an additional check in {{org.apache.webbeans.util.GenericsUtil.satisfiesDependency}} that wasn't there before: {code} return ClassUtil.isSame(injectionPointRawType, beanRawType)? isAssignableFrom(injectionPointType, beanType): false; {code} The problem is with {{isAssignableFrom}}, because the producer is always seen as producing a {{ParamValue<Object}}. The actual values at the point of evaluation with the above given injection example where: {noformat} injectionPoint = ParamValue<class java.lang.String> beanType = ParamValue<class java.lang.Object> {noformat} Those are not directly assignable so the injection fails. Is OmniFaces doing something wrong here, is this check to strict, or should the producer type not be seen as {{ParamValue<Object>}}? -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira