You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@aries.apache.org by "Guillaume Nodet (JIRA)" <ji...@apache.org> on 2016/03/02 18:33:18 UTC

[jira] [Commented] (ARIES-1500) Conversion fails with generics

    [ https://issues.apache.org/jira/browse/ARIES-1500?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15176046#comment-15176046 ] 

Guillaume Nodet commented on ARIES-1500:
----------------------------------------

I disagree that Java does not care about that.
If you have a setter with List<String> and you inject a List<Integer>, you will certainly run into ClassCastException.
The checks that blueprint does are done to avoid such exceptions at runtime.

The blueprint spec mandates this behaviour, so we can't really change the default anyway.  One way around the problem is to provide a converter.  You can implement a Something => Something<T> conversion if you want.

Also, if you inject a bean implementing Something<Foo> and your setter is setSomething(Something<Foo>), the exception should not occur.

> Conversion fails with generics
> ------------------------------
>
>                 Key: ARIES-1500
>                 URL: https://issues.apache.org/jira/browse/ARIES-1500
>             Project: Aries
>          Issue Type: Bug
>          Components: Blueprint
>    Affects Versions: blueprint-core-1.5.0
>         Environment: All
>            Reporter: Jean-Philippe CLEMENT
>
> Let's take a bean with the method setSomething(Something<T>) called via blueprint with another bean implementing Something => exception saying that bean conversion is not possible. But, if I change the method signature without the generic type setSomething(Something), then it works as expected.
> Blueprint should not care for the generic type as Java is type erasure and do not exceed the spec.
> There is no nice work around. Have to change all APIs used via Blueprint and take note for all deviations. This is really heavy.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)