You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by "ning (JIRA)" <ji...@apache.org> on 2009/05/20 07:06:45 UTC
[jira] Commented: (TAP5-571) Misplaced results in an
inscrutable exception
[ https://issues.apache.org/jira/browse/TAP5-571?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12711008#action_12711008 ]
ning commented on TAP5-571:
---------------------------
The fix is not so perfect.
<html xml:space="default" xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd" t:type="Layout" xmlns:p="tapestry:parameter">
<p:body>
simple test
</p:/body>
</html>
is ok.
But
<html xml:space="default" xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd" t:type="Layout" xmlns:p="tapestry:parameter">
<div>
<p:body>
simple test
</p:/body>
</div>
</html>
will lead to "Block parameters are only allowed directly within component elements.". Because p:body is embeded in general 'div' label.
To keep the html previewability, I think it is important to make this case legal.
> Misplaced <t:parameter> results in an inscrutable exception
> -----------------------------------------------------------
>
> Key: TAP5-571
> URL: https://issues.apache.org/jira/browse/TAP5-571
> Project: Tapestry 5
> Issue Type: Bug
> Components: tapestry-core
> Affects Versions: 5.1.0.0
> Reporter: Igor Drobiazko
> Assignee: Howard M. Lewis Ship
> Fix For: 5.1.0.4
>
>
> If <t:parameter> is used not inside a component, a inscrutable exception occurs. The message of the exception doesn't tell at all what the reason was.
> PageLoaderProcessor should catch the IllegalStateException inside the method parameter(ParameterToken) and throw TapestryException containing the location of the current token. This will provide a reasonable exception report.
> java.lang.IllegalStateException: Stack is empty.
> at org.apache.tapestry5.ioc.util.Stack.checkIfEmpty(Stack.java:119)
> at org.apache.tapestry5.ioc.util.Stack.peek(Stack.java:131)
> at org.apache.tapestry5.internal.services.PageLoaderProcessor.parameter(PageLoaderProcessor.java:594)
> at org.apache.tapestry5.internal.services.PageLoaderProcessor.loadTemplateForComponent(PageLoaderProcessor.java:519)
> at org.apache.tapestry5.internal.services.PageLoaderProcessor.workComponentQueue(PageLoaderProcessor.java:834)
> at org.apache.tapestry5.internal.services.PageLoaderProcessor.loadPage(PageLoaderProcessor.java:392)
> at org.apache.tapestry5.internal.services.PageLoaderImpl.loadPage(PageLoaderImpl.java:59)
> at $PageLoader_11ff4e54e7f.loadPage($PageLoader_11ff4e54e7f.java)
> at org.apache.tapestry5.internal.services.PagePoolCache.checkout(PagePoolCache.java:210)
> at org.apache.tapestry5.internal.services.PagePoolImpl.checkout(PagePoolImpl.java:99)
> To reproduce the problem create the following page:
> <html xml:space="default" xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
> <body>
> <t:unless test="some condition">
> Foo
> </t:unless>
> <t:parameter name="else">
> Bar
> </t:parameter>
> </body>
> </html>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.