[
https://issues.apache.org/jira/browse/OWB-1416?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17627641#comment-17627641
]
Alexander Larsen commented on OWB-1416:
---------------------------------------
The proxy only needs to implement all types of the bean, if one assumes the
same proxy will be returned regardless of the type parameter given to
{{getReference}}. I read "by any client proxy that is returned" to mean, iff
the method return (with no exception) then the proxy implements the type given
as parameter.
Actually the part about [contextual
references|https://docs.jboss.org/cdi/spec/2.0/cdi-spec.html#contextual_reference]
clearly states
{quote} A contextual reference implements the given bean type and all bean
types of the bean which are Java interfaces. A contextual reference is not, in
general, required to implement all concrete bean types of the bean.{quote} I
can not see any reason for this statment, except for handling this exact case.
> Possible misintepretation of spec regarding Unproxyable bean types
> ------------------------------------------------------------------
>
> Key: OWB-1416
> URL: https://issues.apache.org/jira/browse/OWB-1416
> Project: OpenWebBeans
> Issue Type: Bug
> Reporter: Alexander Larsen
> Priority: Major
>
> OWB seems to throw an exception for all unproxyable normal scoped beans. I
> think that this might be incorrect.
> The
> [specification|https://docs.jboss.org/cdi/spec/2.0/cdi-spec.html#unproxyable]
> says the "A bean type must be proxyable if an injection point resolves to a
> bean", not that all the types of the bean must be proxyable. In other words,
> as long as the bean is a legal bean, and all injection point resolving to
> this bean is a proxyable type - no exception should be thrown.
> In the part about [contextual
> references|https://docs.jboss.org/cdi/spec/2.0/cdi-spec.html#contextual_reference],
> there is further indications that unproxyable types should be allowed in the
> set of types for the bean. It's only when you try to get a reference(injected
> or by bean manager) to an unproxyable type, and the bean must be proxied
> (normal scoped, intercepted or decorated) an exception should thrown.
> Also, the [Weld user guide suggests introducing an interface as a solution to
> having an unproxyable
> bean|https://docs.jboss.org/weld/reference/latest/en-US/html_single/#_client_proxies].
> The current OWB implementation makes a pattern of having an interface and
> (one or more) implementation class with final fields/methods somewhat
> difficult :)
--
This message was sent by Atlassian Jira
(v8.20.10#820010)