[
https://issues.apache.org/jira/browse/TAPESTRY-2157?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12569158#action_12569158
]
Daniel Caldeweyher commented on TAPESTRY-2157:
----------------------------------------------
i have however come across other scenarions which might be related. OGNL gets
confused sometimes and doesn't necessarily call the same method the the
original ByteCode enhanced code generated. I would for example try replacing
"ognl:pageName==page.pageName" with "ognl:samePage"
and "ognl:page.nextPage" with "ognl:nextPage"
given
class BorderTab {
public boolean isSamePage() {
return getPageName().equals(getPage().getPageName());
}
public String getNextPage() {
return ((INextPage)getPage()).getNextPage();
}
}
> ClassCastException in ExpressionBinding.setObject
> -------------------------------------------------
>
> Key: TAPESTRY-2157
> URL: https://issues.apache.org/jira/browse/TAPESTRY-2157
> Project: Tapestry
> Issue Type: Bug
> Components: Framework
> Affects Versions: 4.1.5
> Environment: Win XP, Tomcat 5.5
> Reporter: Paul Stanton
> Assignee: Jesse Kuhnert
> Priority: Critical
> Attachments: Problem.war
>
>
> I've been using this page structure for quite some time and it seems after
> upgrading to 4.1.5 from 4.1.1 something has regressed. It appears my
> BorderTab component is caching the page or page class when it shouldn't?
> essentially, i have a border component which wraps the bodyContent in a
> generic Form component. Inside this form (yet still inside the Border) i have
> some BorderTab components, each with a LinkSubmit component. Clicking these
> links navigates through the tabs, submitting their forms (empty in the
> example).
> Please run the attached example war file, it includes everything.
> 1. click tab 1, tab 2, tab 3 etc - eventually the ClassCastException will be
> shown.
> note: clicking tab 1 recursively without clicking the other tabs does not
> cause the exception
> Exception message:
> Unable to update OGNL expression '<parsed OGNL expression>' of [EMAIL
> PROTECTED]/$Border.$BorderTab_1] to Page3: $Page2_15 cannot be cast to
> $Page1_14
> stack trace:
> $ASTChain_118168cf864.set($ASTChain_118168cf864.java)
> org.apache.tapestry.services.impl.ExpressionEvaluatorImpl.write(ExpressionEvaluatorImpl.java:179)
>
> $ExpressionEvaluator_118168cf818.write($ExpressionEvaluator_118168cf818.java)
> org.apache.tapestry.binding.ExpressionBinding.setObject(ExpressionBinding.java:224)
>
> $LinkSubmit_9.setSelected($LinkSubmit_9.java)
> org.apache.tapestry.form.AbstractSubmit.handleClick(AbstractSubmit.java:69)
> org.apache.tapestry.form.AbstractSubmit.rewindFormComponent(AbstractSubmit.java:63)
>
> org.apache.tapestry.form.AbstractFormComponent.renderComponent(AbstractFormComponent.java:90)
>
> org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:724)
> org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:187)
>
> org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:538)
> org.apache.tapestry.components.ElseBean.renderComponent(ElseBean.java:47)
> org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:724)
> org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:187)
>
> org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:107)
> org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:724)
> org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:187)
>
> org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:538)
> org.apache.tapestry.components.IfBean.renderComponent(IfBean.java:94)
> org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:724)
> org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:187)
>
> org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:538)
> org.apache.tapestry.form.FormSupportImpl.rewind(FormSupportImpl.java:624)
> org.apache.tapestry.form.Form.renderComponent(Form.java:196)
> org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:724)
> org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:187)
>
> org.apache.tapestry.form.Form.rewind(Form.java:269)
> org.apache.tapestry.engine.RequestCycle.rewindForm(RequestCycle.java:469)
> org.apache.tapestry.form.Form.trigger(Form.java:280)
> org.apache.tapestry.engine.DirectService.triggerComponent(DirectService.java:166)
>
> org.apache.tapestry.engine.DirectService.service(DirectService.java:142)
> $IEngineService_118168cf76b.service($IEngineService_118168cf76b.java)
> org.apache.tapestry.services.impl.EngineServiceOuterProxy.service(EngineServiceOuterProxy.java:72)
>
> org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:241)
> org.apache.tapestry.services.impl.InvokeEngineTerminator.service(InvokeEngineTerminator.java:54)
>
> $WebRequestServicer_118168cf742.service($WebRequestServicer_118168cf742.java)
> $WebRequestServicer_118168cf73e.service($WebRequestServicer_118168cf73e.java)
> org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service(WebRequestServicerPipelineBridge.java:61)
>
> $ServletRequestServicer_118168cf724.service($ServletRequestServicer_118168cf724.java)
>
> org.apache.tapestry.request.DecodedRequestInjector.service(DecodedRequestInjector.java:55)
>
> $ServletRequestServicerFilter_118168cf720.service($ServletRequestServicerFilter_118168cf720.java)
>
> $ServletRequestServicer_118168cf726.service($ServletRequestServicer_118168cf726.java)
>
> org.apache.tapestry.multipart.MultipartDecoderFilter.service(MultipartDecoderFilter.java:52)
>
> $ServletRequestServicerFilter_118168cf71e.service($ServletRequestServicerFilter_118168cf71e.java)
>
> $ServletRequestServicer_118168cf726.service($ServletRequestServicer_118168cf726.java)
>
> org.apache.tapestry.services.impl.SetupRequestEncoding.service(SetupRequestEncoding.java:53)
>
> $ServletRequestServicerFilter_118168cf722.service($ServletRequestServicerFilter_118168cf722.java)
>
> $ServletRequestServicer_118168cf726.service($ServletRequestServicer_118168cf726.java)
>
> $ServletRequestServicer_118168cf718.service($ServletRequestServicer_118168cf718.java)
>
> org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:126)
> org.apache.tapestry.ApplicationServlet.doPost(ApplicationServlet.java:171)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]