tapestry-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thiago H. de Paula Figueiredo (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (TAP5-2423) Wrong component id check for inherited pages/components
Date Thu, 08 Jan 2015 16:41:34 GMT

    [ 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 commented on TAP5-2423:

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

View raw message