You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Igor Drobiazko (Closed) (JIRA)" <ji...@apache.org> on 2011/10/02 18:00:34 UTC

[jira] [Closed] (TAP5-1679) Bug in InternalClassTransformationImpl

     [ https://issues.apache.org/jira/browse/TAP5-1679?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Igor Drobiazko closed TAP5-1679.
--------------------------------

    Resolution: Invalid

It's not a bug; it's expected behavior. You are overriding a method without calling the super method and wondering that the later is not called. Either invoke the super method from the sub-class's method or use @BeginRender annotation. Also beware of the ordering.
                
> Bug in InternalClassTransformationImpl
> --------------------------------------
>
>                 Key: TAP5-1679
>                 URL: https://issues.apache.org/jira/browse/TAP5-1679
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.2.6
>            Reporter: Alex Lumpov
>            Priority: Minor
>
> For example, consider a two components:
> public class Parent {
> void beginRender(MarkupWriter writer) {
> write("A");
> }
> }
> public class Child extends Parent {
> void beginRender(MarkupWriter writer) {
> write("B");
> }
> }
> Judging by the documentation (http://tapestry.apache.org/component-rendering.html)
> component Child should display "AB",
> but in reality it displays "A".
> The fact that RenderPhaseMethodWorker does not process the method B.beginRender,
> because it believes that it override A.beginRender. 
> In the process of the transformation of the Child,
> InternalClassTransformationImpl.TransformMethodImpl.isOverride()
> looking for a method with the same signature in the Parent and it finds it.
> All would be right, if the method beginRender was protected or public.
> I think
> To fix this bug method isOverride()
> should take into account the modifiers in the method signature.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Re: [jira] [Closed] (TAP5-1679) Bug in InternalClassTransformationImpl

Posted by Howard Lewis Ship <hl...@gmail.com>.
Thank you!  Basic Java.

On Sun, Oct 2, 2011 at 9:00 AM, Igor Drobiazko (Closed) (JIRA)
<ji...@apache.org> wrote:
>
>     [ https://issues.apache.org/jira/browse/TAP5-1679?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
>
> Igor Drobiazko closed TAP5-1679.
> --------------------------------
>
>    Resolution: Invalid
>
> It's not a bug; it's expected behavior. You are overriding a method without calling the super method and wondering that the later is not called. Either invoke the super method from the sub-class's method or use @BeginRender annotation. Also beware of the ordering.
>
>> Bug in InternalClassTransformationImpl
>> --------------------------------------
>>
>>                 Key: TAP5-1679
>>                 URL: https://issues.apache.org/jira/browse/TAP5-1679
>>             Project: Tapestry 5
>>          Issue Type: Bug
>>          Components: tapestry-core
>>    Affects Versions: 5.2.6
>>            Reporter: Alex Lumpov
>>            Priority: Minor
>>
>> For example, consider a two components:
>> public class Parent {
>> void beginRender(MarkupWriter writer) {
>> write("A");
>> }
>> }
>> public class Child extends Parent {
>> void beginRender(MarkupWriter writer) {
>> write("B");
>> }
>> }
>> Judging by the documentation (http://tapestry.apache.org/component-rendering.html)
>> component Child should display "AB",
>> but in reality it displays "A".
>> The fact that RenderPhaseMethodWorker does not process the method B.beginRender,
>> because it believes that it override A.beginRender.
>> In the process of the transformation of the Child,
>> InternalClassTransformationImpl.TransformMethodImpl.isOverride()
>> looking for a method with the same signature in the Parent and it finds it.
>> All would be right, if the method beginRender was protected or public.
>> I think
>> To fix this bug method isOverride()
>> should take into account the modifiers in the method signature.
>
> --
> This message is automatically generated by JIRA.
> If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
> For more information on JIRA, see: http://www.atlassian.com/software/jira
>
>
>



-- 
Howard M. Lewis Ship

Creator of Apache Tapestry

The source for Tapestry training, mentoring and support. Contact me to
learn how I can get you up and productive in Tapestry fast!

(971) 678-5210
http://howardlewisship.com

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org