You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Thiago H. de Paula Figueiredo (JIRA)" <ji...@apache.org> on 2015/01/08 17:42:35 UTC

[jira] [Comment Edited] (TAP5-2423) Wrong component id check for inherited pages/components

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

Thiago H. de Paula Figueiredo edited comment on TAP5-2423 at 1/8/15 4:42 PM:
-----------------------------------------------------------------------------

Nourredine, I think I've understood what you're describing. When you have template inheritance, a page or component can have a component declared in the superclass template. This isn't an error (even if you can argue against template inheritance, which has its pitfalls), so it's a Tapestry bug.

But I think you're not correct about the fix. The parent of a component is the page or component which declared it. We actually need to check the component superclass resources. I'm not sure this can be done right now just by changing ComponentIdValidator.


was (Author: thiagohp):
Nourredine, I think I've understood what you're describing. When you have template inheritance, a page can have a component and its events in the parent page class template. This isn't an error (even if you can argue against template inheritance, which has its pitfalls), so it's a Tapestry bug.

But I think you're not correct about the fix. The parent of a component is the page or component which declared it. We actually need to check the component superclass resources. I'm not sure this can be done right now just by changing ComponentIdValidator.

> Wrong component id check for inherited pages/components
> -------------------------------------------------------
>
>                 Key: TAP5-2423
>                 URL: https://issues.apache.org/jira/browse/TAP5-2423
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.4
>            Reporter: Nourredine K.
>              Labels: easytest
>         Attachments: sample.zip
>
>
> When page B inherits page A (providing its own template) and A implements some event handler methods on some components, displaying page B throws an TapestryException that claims page B does not contain those components in its template.
> I think the pb occurs in the [ComponentIdValidator#validate(ComponentResources)|https://git-wip-us.apache.org/repos/asf?p=tapestry-5.git;a=blob;f=tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/OnEventWorker.java;h=c640158666493ebc669ff561de25b62a9236f54a;hb=HEAD#l91] method because, we only check in the current ComponentResource and never in its parents if they exist.
> Remarks : 
> - Occurs with tapestry 5.4-beta-22
> - Symbol tapestry.compatibility.unknown-component-id-check-enabled can't be used (no more used in 5.4-beta-22)
> Regards,
> Nourredine.



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