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

Hudson commented on TAP5-1493:
------------------------------

ABORTED: Integrated in Jenkins build tapestry-trunk-freestyle #1677 (See 
[https://builds.apache.org/job/tapestry-trunk-freestyle/1677/])
TAP5-2032, TAP5-2449, TAP5-1493: consider overridden methods first so we 
(jkemnade: rev 127f62edf90b2a838896626143f2ca9e6a718a76)
* (edit) 
beanmodel/src/main/java/org/apache/tapestry5/ioc/internal/services/PropertyAccessImpl.java
* (edit) tapestry-ioc/src/test/groovy/ioc/specs/PropertyAccessImplSpec.groovy
* (edit) 
beanmodel/src/main/java/org/apache/tapestry5/ioc/internal/services/ClassPropertyAdapterImpl.java


> Property expressions on properties that are covariant on a base class use the 
> type of the base class property, not the covariant subclass
> -----------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: TAP5-1493
>                 URL: https://issues.apache.org/jira/browse/TAP5-1493
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core, tapestry-ioc
>    Affects Versions: 5.2
>            Reporter: Howard M. Lewis Ship
>            Assignee: Thiago H. de Paula Figueiredo
>            Priority: Critical
>              Labels: month-of-tapestry
>             Fix For: 5.4
>
>
> public abstract class AbstractFoo
> {
>  public abstract AbstractBar getBar();
> }
> public class Foo extends AbstractFoo
> {
>  public Bar getBar();
> }
> Here property bar is covariant; the subclass (Foo) changes the type of the 
> return value (from AbstractBar to just Bar). Assuming that Bar is a subclass 
> of AbstractBar, that's fine.
> The bug is that in this circumstance, the PropertyConduitSource sees the type 
> of
> property "bar" of class Foo as AbstractBar, not Bar.
> Interestingly, a little debugging showed that the getter method for property 
> bar was "public AbstractBar Foo.getBar()" ... in other words, much like with 
> Generics, covariant return types may be largely
> a fiction of the compiler inserting the necessary casts in place.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to