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

Paul Stanton updated TAPESTRY-2157:
-----------------------------------

    Description: 
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) 

  was:
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

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) 


> 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]

Reply via email to