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

Ben Dinnerville updated TAPESTRY-2633:
--------------------------------------

          Description: 
As per the previous issue with ClassCastExceptions in 
CoercingPropertyConduitWrapper, I am seeing a ClassCastException when trying to 
use parent / child classes in a Grid.

I have class 1 (Campaign) and Class 2 (CCOCampaign) where Class2 extends 
Class1. I return a list of Campaigns thru my business layer via  a 
List<Campaign> to the page. 

Different to the first issue is tht i am expecting to only see the properties 
of the parent class (Class1 / Campaign), but instead I get a ClassCastException 
whenever a CCOCampaign is present in the List.

This looks to be the same issue as previously reported, with only the expected 
outcome differing?

Cheers,

Ben

A full stack trace is as follows:

18:44:29,641 ERROR [ClientLandingPage] Render queue error in 
BeginRender[ClientLandingPage:grid.rows.gridcell]: 
au.com.voicelogic.teleblast.business.model.Campaign
org.apache.tapestry5.ioc.internal.util.TapestryException: 
au.com.voicelogic.teleblast.business.model.Campaign [at 
classpath:org/apache/tapestry5/corelib/components/GridRows.tml, line 4, column 
81]
        at 
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:909)
        at 
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access$200(ComponentPageElementImpl.java:50)
        at 
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$11.render(ComponentPageElementImpl.java:338)
        at 
org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:68)
        at 
org.apache.tapestry5.internal.services.PageRenderQueueImpl.render(PageRenderQueueImpl.java:108)
        at 
$PageRenderQueue_11c1d152070.render($PageRenderQueue_11c1d152070.java)
        at 
$PageRenderQueue_11c1d152069.render($PageRenderQueue_11c1d152069.java)
        at 
org.apache.tapestry5.services.TapestryModule$15.renderMarkup(TapestryModule.java:1128)
        at 
org.apache.tapestry5.services.TapestryModule$24.renderMarkup(TapestryModule.java:1472)
        at 
$MarkupRenderer_11c1d152071.renderMarkup($MarkupRenderer_11c1d152071.java)
        at 
org.apache.tapestry5.services.TapestryModule$23.renderMarkup(TapestryModule.java:1453)
        at 
$MarkupRenderer_11c1d152071.renderMarkup($MarkupRenderer_11c1d152071.java)
        at 
org.apache.tapestry5.services.TapestryModule$22.renderMarkup(TapestryModule.java:1435)
        at 
$MarkupRenderer_11c1d152071.renderMarkup($MarkupRenderer_11c1d152071.java)
        at 
org.apache.tapestry5.services.TapestryModule$21.renderMarkup(TapestryModule.java:1415)
        at 
$MarkupRenderer_11c1d152071.renderMarkup($MarkupRenderer_11c1d152071.java)
        at 
$MarkupRenderer_11c1d15206e.renderMarkup($MarkupRenderer_11c1d15206e.java)
        at 
org.apache.tapestry5.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:64)
        at 
$PageMarkupRenderer_11c1d15206c.renderPageMarkup($PageMarkupRenderer_11c1d15206c.java)
        at 
org.apache.tapestry5.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:57)
        at 
$PageResponseRenderer_11c1d152027.renderPageResponse($PageResponseRenderer_11c1d152027.java)
        at 
org.apache.tapestry5.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:59)
        at 
org.apache.tapestry5.services.TapestryModule$29.handle(TapestryModule.java:1653)
        at 
$PageRenderRequestHandler_11c1d152028.handle($PageRenderRequestHandler_11c1d152028.java)
        at 
$PageRenderRequestHandler_11c1d15201d.handle($PageRenderRequestHandler_11c1d15201d.java)
        at 
org.apache.tapestry5.internal.services.PageRenderDispatcher.process(PageRenderDispatcher.java:97)
        at 
org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:73)
        at $Dispatcher_11c1d152023.dispatch($Dispatcher_11c1d152023.java)
        at $Dispatcher_11c1d152016.dispatch($Dispatcher_11c1d152016.java)
        at 
org.apache.tapestry5.services.TapestryModule$13.service(TapestryModule.java:953)
        at 
org.apache.tapestry5.internal.services.LocalizationFilter.service(LocalizationFilter.java:42)
        at $RequestHandler_11c1d152017.service($RequestHandler_11c1d152017.java)
        at 
org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:586)
        at $RequestHandler_11c1d152017.service($RequestHandler_11c1d152017.java)
        at 
org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26)
        at $RequestHandler_11c1d152017.service($RequestHandler_11c1d152017.java)
        at 
org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:79)
        at $RequestHandler_11c1d152017.service($RequestHandler_11c1d152017.java)
        at 
org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:93)
        at 
org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:84)
        at 
org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:83)
        at 
org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:106)
        at $RequestHandler_11c1d152017.service($RequestHandler_11c1d152017.java)
        at $RequestHandler_11c1d15200f.service($RequestHandler_11c1d15200f.java)
        at 
org.apache.tapestry5.services.TapestryModule$12.service(TapestryModule.java:933)
        at 
org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
        at 
$HttpServletRequestFilter_11c1d15200e.service($HttpServletRequestFilter_11c1d15200e.java)
        at 
$HttpServletRequestHandler_11c1d152010.service($HttpServletRequestHandler_11c1d152010.java)
        at 
$HttpServletRequestHandler_11c1d15200d.service($HttpServletRequestHandler_11c1d15200d.java)
        at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:177)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at 
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
        at 
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at 
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
        at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:437)
        at 
org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:366)
        at 
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
        at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.ClassCastException: 
au.com.voicelogic.teleblast.business.model.Campaign
        at 
$PropertyConduit_11c1d1520ca.navigate($PropertyConduit_11c1d1520ca.java)
        at $PropertyConduit_11c1d1520ca.get($PropertyConduit_11c1d1520ca.java)
        at 
org.apache.tapestry5.internal.services.CoercingPropertyConduitWrapper.get(CoercingPropertyConduitWrapper.java:36)
        at 
org.apache.tapestry5.corelib.base.AbstractPropertyOutput.readPropertyForObject(AbstractPropertyOutput.java:138)
        at 
org.apache.tapestry5.corelib.base.AbstractPropertyOutput.renderPropertyValue(AbstractPropertyOutput.java:117)
        at 
org.apache.tapestry5.corelib.components.GridCell.beginRender(GridCell.java:28)
        at 
org.apache.tapestry5.corelib.components.GridCell.beginRender(GridCell.java)
        at 
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$11$1.run(ComponentPageElementImpl.java:334)
        at 
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:899)
        ... 67 more
18:44:29,651 ERROR [RequestExceptionHandler] Processing of request failed with 
uncaught exception: Render queue error in 
BeginRender[ClientLandingPage:grid.rows.gridcell]: 
au.com.voicelogic.teleblast.business.model.Campaign
org.apache.tapestry5.internal.services.RenderQueueException: Render queue error 
in BeginRender[ClientLandingPage:grid.rows.gridcell]: 
au.com.voicelogic.teleblast.business.model.Campaign [at 
classpath:org/apache/tapestry5/corelib/components/GridRows.tml, line 4, column 
81]
        at 
org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:80)
        at 
org.apache.tapestry5.internal.services.PageRenderQueueImpl.render(PageRenderQueueImpl.java:108)
        at 
$PageRenderQueue_11c1d152070.render($PageRenderQueue_11c1d152070.java)
        at 
$PageRenderQueue_11c1d152069.render($PageRenderQueue_11c1d152069.java)
        at 
org.apache.tapestry5.services.TapestryModule$15.renderMarkup(TapestryModule.java:1128)
        at 
org.apache.tapestry5.services.TapestryModule$24.renderMarkup(TapestryModule.java:1472)
        at 
$MarkupRenderer_11c1d152071.renderMarkup($MarkupRenderer_11c1d152071.java)
        at 
org.apache.tapestry5.services.TapestryModule$23.renderMarkup(TapestryModule.java:1453)
        at 
$MarkupRenderer_11c1d152071.renderMarkup($MarkupRenderer_11c1d152071.java)
        at 
org.apache.tapestry5.services.TapestryModule$22.renderMarkup(TapestryModule.java:1435)
        at 
$MarkupRenderer_11c1d152071.renderMarkup($MarkupRenderer_11c1d152071.java)
        at 
org.apache.tapestry5.services.TapestryModule$21.renderMarkup(TapestryModule.java:1415)
        at 
$MarkupRenderer_11c1d152071.renderMarkup($MarkupRenderer_11c1d152071.java)
        at 
$MarkupRenderer_11c1d15206e.renderMarkup($MarkupRenderer_11c1d15206e.java)
        at 
org.apache.tapestry5.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:64)
        at 
$PageMarkupRenderer_11c1d15206c.renderPageMarkup($PageMarkupRenderer_11c1d15206c.java)
        at 
org.apache.tapestry5.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:57)
        at 
$PageResponseRenderer_11c1d152027.renderPageResponse($PageResponseRenderer_11c1d152027.java)
        at 
org.apache.tapestry5.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:59)
        at 
org.apache.tapestry5.services.TapestryModule$29.handle(TapestryModule.java:1653)
        at 
$PageRenderRequestHandler_11c1d152028.handle($PageRenderRequestHandler_11c1d152028.java)
        at 
$PageRenderRequestHandler_11c1d15201d.handle($PageRenderRequestHandler_11c1d15201d.java)
        at 
org.apache.tapestry5.internal.services.PageRenderDispatcher.process(PageRenderDispatcher.java:97)
        at 
org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:73)
        at $Dispatcher_11c1d152023.dispatch($Dispatcher_11c1d152023.java)
        at $Dispatcher_11c1d152016.dispatch($Dispatcher_11c1d152016.java)
        at 
org.apache.tapestry5.services.TapestryModule$13.service(TapestryModule.java:953)
        at 
org.apache.tapestry5.internal.services.LocalizationFilter.service(LocalizationFilter.java:42)
        at $RequestHandler_11c1d152017.service($RequestHandler_11c1d152017.java)
        at 
org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:586)
        at $RequestHandler_11c1d152017.service($RequestHandler_11c1d152017.java)
        at 
org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26)
        at $RequestHandler_11c1d152017.service($RequestHandler_11c1d152017.java)
        at 
org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:79)
        at $RequestHandler_11c1d152017.service($RequestHandler_11c1d152017.java)
        at 
org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:93)
        at 
org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:84)
        at 
org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:83)
        at 
org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:106)
        at $RequestHandler_11c1d152017.service($RequestHandler_11c1d152017.java)
        at $RequestHandler_11c1d15200f.service($RequestHandler_11c1d15200f.java)
        at 
org.apache.tapestry5.services.TapestryModule$12.service(TapestryModule.java:933)
        at 
org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
        at 
$HttpServletRequestFilter_11c1d15200e.service($HttpServletRequestFilter_11c1d15200e.java)
        at 
$HttpServletRequestHandler_11c1d152010.service($HttpServletRequestHandler_11c1d152010.java)
        at 
$HttpServletRequestHandler_11c1d15200d.service($HttpServletRequestHandler_11c1d15200d.java)
        at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:177)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at 
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
        at 
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at 
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
        at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:437)
        at 
org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:366)
        at 
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
        at java.lang.Thread.run(Thread.java:595)
Caused by: org.apache.tapestry5.ioc.internal.util.TapestryException: 
au.com.voicelogic.teleblast.business.model.Campaign [at 
classpath:org/apache/tapestry5/corelib/components/GridRows.tml, line 4, column 
81]
        at 
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:909)
        at 
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access$200(ComponentPageElementImpl.java:50)
        at 
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$11.render(ComponentPageElementImpl.java:338)
        at 
org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:68)
        ... 64 more
Caused by: java.lang.ClassCastException: 
au.com.voicelogic.teleblast.business.model.Campaign
        at 
$PropertyConduit_11c1d1520ca.navigate($PropertyConduit_11c1d1520ca.java)
        at $PropertyConduit_11c1d1520ca.get($PropertyConduit_11c1d1520ca.java)
        at 
org.apache.tapestry5.internal.services.CoercingPropertyConduitWrapper.get(CoercingPropertyConduitWrapper.java:36)
        at 
org.apache.tapestry5.corelib.base.AbstractPropertyOutput.readPropertyForObject(AbstractPropertyOutput.java:138)
        at 
org.apache.tapestry5.corelib.base.AbstractPropertyOutput.renderPropertyValue(AbstractPropertyOutput.java:117)
        at 
org.apache.tapestry5.corelib.components.GridCell.beginRender(GridCell.java:28)
        at 
org.apache.tapestry5.corelib.components.GridCell.beginRender(GridCell.java)
        at 
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$11$1.run(ComponentPageElementImpl.java:334)
        at 
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:899)
        ... 67 more
18:44:29,939 ERROR [PagePool] Page Page[ClientLandingPage en] is dirty, and 
will be discarded (rather than returned to the page pool).


Previous Case:

When a bean editor receives beans from differenct classes (superclass & 
subclass) sometimes the wrong fields are displayed and other times a 
ClassCastException is throws in the CoercingPropertyConduitWrapper.
This happens only, when bean editing is finished by the onSubmit method.

TestCase: 

TT1 is the superclasss of TT2

TT1.java
-------------------


public class TT1 {
        private String name;
        
        public String getName() {
                return name;
        }
        
        public void setName(String name) {
                this.name = name;
        }
}


TT2.java
----------------------------


public class TT2 extends TT1 {

        private String v2;

        public String getV2() {
                return v2;
        }

        public void setV2(String v2) {
                this.v2 = v2;
        }
}


CoercTest.java
-----------------------

public class CoercTest {

        @Persist
        private TT1 testObject;
        
        
        @OnEvent(component="typeTO1")
        public void onTypeTO1() {
                setTestObject(new TT1());
        }
        
        @OnEvent(component="typeTO2")
        public void onTypeTO2() {
                setTestObject(new TT2());               
        }

        public TT1 getTestObject() {
                return testObject;
        }

        public void setTestObject(TT1 testObject) {
                this.testObject = testObject;
        }
        
        public void onSubmit() {
                testObject = null;
        }
        
        public boolean isTestObjectNotNull() {
                return testObject != null;
        }
        
}


CoercTest.tml

<html  xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd";>
<body>
<t:ActionLink t:id="typeTO1">TT1</t:ActionLink><br/>
<t:ActionLink t:id="typeTO2">TT2</t:ActionLink><br/>
<t:If test="testObjectNotNull">
<t:BeanEditForm object="testObject"/>
</t:If>
</body>
</html>



  was:
When a bean editor receives beans from differenct classes (superclass & 
subclass) sometimes the wrong fields are displayed and other times a 
ClassCastException is throws in the CoercingPropertyConduitWrapper.
This happens only, when bean editing is finished by the onSubmit method.

TestCase: 

TT1 is the superclasss of TT2

TT1.java
-------------------


public class TT1 {
        private String name;
        
        public String getName() {
                return name;
        }
        
        public void setName(String name) {
                this.name = name;
        }
}


TT2.java
----------------------------


public class TT2 extends TT1 {

        private String v2;

        public String getV2() {
                return v2;
        }

        public void setV2(String v2) {
                this.v2 = v2;
        }
}


CoercTest.java
-----------------------

public class CoercTest {

        @Persist
        private TT1 testObject;
        
        
        @OnEvent(component="typeTO1")
        public void onTypeTO1() {
                setTestObject(new TT1());
        }
        
        @OnEvent(component="typeTO2")
        public void onTypeTO2() {
                setTestObject(new TT2());               
        }

        public TT1 getTestObject() {
                return testObject;
        }

        public void setTestObject(TT1 testObject) {
                this.testObject = testObject;
        }
        
        public void onSubmit() {
                testObject = null;
        }
        
        public boolean isTestObjectNotNull() {
                return testObject != null;
        }
        
}


CoercTest.tml

<html  xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd";>
<body>
<t:ActionLink t:id="typeTO1">TT1</t:ActionLink><br/>
<t:ActionLink t:id="typeTO2">TT2</t:ActionLink><br/>
<t:If test="testObjectNotNull">
<t:BeanEditForm object="testObject"/>
</t:If>
</body>
</html>



          Environment: Jboss 4.2.3 + JDK 1.5.0_16-b02 + Tapestry 5.0.14  (was: 
Jetty & MacOS X )
    Affects Version/s:     (was: 5.0.9)
                       5.0.14

> CLONE -ClassCastException in CoercingPropertyConduitWrapper
> -----------------------------------------------------------
>
>                 Key: TAPESTRY-2633
>                 URL: https://issues.apache.org/jira/browse/TAPESTRY-2633
>             Project: Tapestry
>          Issue Type: Bug
>          Components: Core Components
>    Affects Versions: 5.0.14
>         Environment: Jboss 4.2.3 + JDK 1.5.0_16-b02 + Tapestry 5.0.14
>            Reporter: Ben Dinnerville
>            Assignee: Howard M. Lewis Ship
>
> As per the previous issue with ClassCastExceptions in 
> CoercingPropertyConduitWrapper, I am seeing a ClassCastException when trying 
> to use parent / child classes in a Grid.
> I have class 1 (Campaign) and Class 2 (CCOCampaign) where Class2 extends 
> Class1. I return a list of Campaigns thru my business layer via  a 
> List<Campaign> to the page. 
> Different to the first issue is tht i am expecting to only see the properties 
> of the parent class (Class1 / Campaign), but instead I get a 
> ClassCastException whenever a CCOCampaign is present in the List.
> This looks to be the same issue as previously reported, with only the 
> expected outcome differing?
> Cheers,
> Ben
> A full stack trace is as follows:
> 18:44:29,641 ERROR [ClientLandingPage] Render queue error in 
> BeginRender[ClientLandingPage:grid.rows.gridcell]: 
> au.com.voicelogic.teleblast.business.model.Campaign
> org.apache.tapestry5.ioc.internal.util.TapestryException: 
> au.com.voicelogic.teleblast.business.model.Campaign [at 
> classpath:org/apache/tapestry5/corelib/components/GridRows.tml, line 4, 
> column 81]
>       at 
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:909)
>       at 
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access$200(ComponentPageElementImpl.java:50)
>       at 
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$11.render(ComponentPageElementImpl.java:338)
>       at 
> org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:68)
>       at 
> org.apache.tapestry5.internal.services.PageRenderQueueImpl.render(PageRenderQueueImpl.java:108)
>       at 
> $PageRenderQueue_11c1d152070.render($PageRenderQueue_11c1d152070.java)
>       at 
> $PageRenderQueue_11c1d152069.render($PageRenderQueue_11c1d152069.java)
>       at 
> org.apache.tapestry5.services.TapestryModule$15.renderMarkup(TapestryModule.java:1128)
>       at 
> org.apache.tapestry5.services.TapestryModule$24.renderMarkup(TapestryModule.java:1472)
>       at 
> $MarkupRenderer_11c1d152071.renderMarkup($MarkupRenderer_11c1d152071.java)
>       at 
> org.apache.tapestry5.services.TapestryModule$23.renderMarkup(TapestryModule.java:1453)
>       at 
> $MarkupRenderer_11c1d152071.renderMarkup($MarkupRenderer_11c1d152071.java)
>       at 
> org.apache.tapestry5.services.TapestryModule$22.renderMarkup(TapestryModule.java:1435)
>       at 
> $MarkupRenderer_11c1d152071.renderMarkup($MarkupRenderer_11c1d152071.java)
>       at 
> org.apache.tapestry5.services.TapestryModule$21.renderMarkup(TapestryModule.java:1415)
>       at 
> $MarkupRenderer_11c1d152071.renderMarkup($MarkupRenderer_11c1d152071.java)
>       at 
> $MarkupRenderer_11c1d15206e.renderMarkup($MarkupRenderer_11c1d15206e.java)
>       at 
> org.apache.tapestry5.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:64)
>       at 
> $PageMarkupRenderer_11c1d15206c.renderPageMarkup($PageMarkupRenderer_11c1d15206c.java)
>       at 
> org.apache.tapestry5.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:57)
>       at 
> $PageResponseRenderer_11c1d152027.renderPageResponse($PageResponseRenderer_11c1d152027.java)
>       at 
> org.apache.tapestry5.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:59)
>       at 
> org.apache.tapestry5.services.TapestryModule$29.handle(TapestryModule.java:1653)
>       at 
> $PageRenderRequestHandler_11c1d152028.handle($PageRenderRequestHandler_11c1d152028.java)
>       at 
> $PageRenderRequestHandler_11c1d15201d.handle($PageRenderRequestHandler_11c1d15201d.java)
>       at 
> org.apache.tapestry5.internal.services.PageRenderDispatcher.process(PageRenderDispatcher.java:97)
>       at 
> org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:73)
>       at $Dispatcher_11c1d152023.dispatch($Dispatcher_11c1d152023.java)
>       at $Dispatcher_11c1d152016.dispatch($Dispatcher_11c1d152016.java)
>       at 
> org.apache.tapestry5.services.TapestryModule$13.service(TapestryModule.java:953)
>       at 
> org.apache.tapestry5.internal.services.LocalizationFilter.service(LocalizationFilter.java:42)
>       at $RequestHandler_11c1d152017.service($RequestHandler_11c1d152017.java)
>       at 
> org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:586)
>       at $RequestHandler_11c1d152017.service($RequestHandler_11c1d152017.java)
>       at 
> org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26)
>       at $RequestHandler_11c1d152017.service($RequestHandler_11c1d152017.java)
>       at 
> org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:79)
>       at $RequestHandler_11c1d152017.service($RequestHandler_11c1d152017.java)
>       at 
> org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:93)
>       at 
> org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:84)
>       at 
> org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:83)
>       at 
> org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:106)
>       at $RequestHandler_11c1d152017.service($RequestHandler_11c1d152017.java)
>       at $RequestHandler_11c1d15200f.service($RequestHandler_11c1d15200f.java)
>       at 
> org.apache.tapestry5.services.TapestryModule$12.service(TapestryModule.java:933)
>       at 
> org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
>       at 
> $HttpServletRequestFilter_11c1d15200e.service($HttpServletRequestFilter_11c1d15200e.java)
>       at 
> $HttpServletRequestHandler_11c1d152010.service($HttpServletRequestHandler_11c1d152010.java)
>       at 
> $HttpServletRequestHandler_11c1d15200d.service($HttpServletRequestHandler_11c1d15200d.java)
>       at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:177)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>       at 
> org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>       at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
>       at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>       at 
> org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
>       at 
> org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
>       at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>       at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>       at 
> org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
>       at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>       at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
>       at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:437)
>       at 
> org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:366)
>       at 
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
>       at java.lang.Thread.run(Thread.java:595)
> Caused by: java.lang.ClassCastException: 
> au.com.voicelogic.teleblast.business.model.Campaign
>       at 
> $PropertyConduit_11c1d1520ca.navigate($PropertyConduit_11c1d1520ca.java)
>       at $PropertyConduit_11c1d1520ca.get($PropertyConduit_11c1d1520ca.java)
>       at 
> org.apache.tapestry5.internal.services.CoercingPropertyConduitWrapper.get(CoercingPropertyConduitWrapper.java:36)
>       at 
> org.apache.tapestry5.corelib.base.AbstractPropertyOutput.readPropertyForObject(AbstractPropertyOutput.java:138)
>       at 
> org.apache.tapestry5.corelib.base.AbstractPropertyOutput.renderPropertyValue(AbstractPropertyOutput.java:117)
>       at 
> org.apache.tapestry5.corelib.components.GridCell.beginRender(GridCell.java:28)
>       at 
> org.apache.tapestry5.corelib.components.GridCell.beginRender(GridCell.java)
>       at 
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$11$1.run(ComponentPageElementImpl.java:334)
>       at 
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:899)
>       ... 67 more
> 18:44:29,651 ERROR [RequestExceptionHandler] Processing of request failed 
> with uncaught exception: Render queue error in 
> BeginRender[ClientLandingPage:grid.rows.gridcell]: 
> au.com.voicelogic.teleblast.business.model.Campaign
> org.apache.tapestry5.internal.services.RenderQueueException: Render queue 
> error in BeginRender[ClientLandingPage:grid.rows.gridcell]: 
> au.com.voicelogic.teleblast.business.model.Campaign [at 
> classpath:org/apache/tapestry5/corelib/components/GridRows.tml, line 4, 
> column 81]
>       at 
> org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:80)
>       at 
> org.apache.tapestry5.internal.services.PageRenderQueueImpl.render(PageRenderQueueImpl.java:108)
>       at 
> $PageRenderQueue_11c1d152070.render($PageRenderQueue_11c1d152070.java)
>       at 
> $PageRenderQueue_11c1d152069.render($PageRenderQueue_11c1d152069.java)
>       at 
> org.apache.tapestry5.services.TapestryModule$15.renderMarkup(TapestryModule.java:1128)
>       at 
> org.apache.tapestry5.services.TapestryModule$24.renderMarkup(TapestryModule.java:1472)
>       at 
> $MarkupRenderer_11c1d152071.renderMarkup($MarkupRenderer_11c1d152071.java)
>       at 
> org.apache.tapestry5.services.TapestryModule$23.renderMarkup(TapestryModule.java:1453)
>       at 
> $MarkupRenderer_11c1d152071.renderMarkup($MarkupRenderer_11c1d152071.java)
>       at 
> org.apache.tapestry5.services.TapestryModule$22.renderMarkup(TapestryModule.java:1435)
>       at 
> $MarkupRenderer_11c1d152071.renderMarkup($MarkupRenderer_11c1d152071.java)
>       at 
> org.apache.tapestry5.services.TapestryModule$21.renderMarkup(TapestryModule.java:1415)
>       at 
> $MarkupRenderer_11c1d152071.renderMarkup($MarkupRenderer_11c1d152071.java)
>       at 
> $MarkupRenderer_11c1d15206e.renderMarkup($MarkupRenderer_11c1d15206e.java)
>       at 
> org.apache.tapestry5.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:64)
>       at 
> $PageMarkupRenderer_11c1d15206c.renderPageMarkup($PageMarkupRenderer_11c1d15206c.java)
>       at 
> org.apache.tapestry5.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:57)
>       at 
> $PageResponseRenderer_11c1d152027.renderPageResponse($PageResponseRenderer_11c1d152027.java)
>       at 
> org.apache.tapestry5.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:59)
>       at 
> org.apache.tapestry5.services.TapestryModule$29.handle(TapestryModule.java:1653)
>       at 
> $PageRenderRequestHandler_11c1d152028.handle($PageRenderRequestHandler_11c1d152028.java)
>       at 
> $PageRenderRequestHandler_11c1d15201d.handle($PageRenderRequestHandler_11c1d15201d.java)
>       at 
> org.apache.tapestry5.internal.services.PageRenderDispatcher.process(PageRenderDispatcher.java:97)
>       at 
> org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:73)
>       at $Dispatcher_11c1d152023.dispatch($Dispatcher_11c1d152023.java)
>       at $Dispatcher_11c1d152016.dispatch($Dispatcher_11c1d152016.java)
>       at 
> org.apache.tapestry5.services.TapestryModule$13.service(TapestryModule.java:953)
>       at 
> org.apache.tapestry5.internal.services.LocalizationFilter.service(LocalizationFilter.java:42)
>       at $RequestHandler_11c1d152017.service($RequestHandler_11c1d152017.java)
>       at 
> org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:586)
>       at $RequestHandler_11c1d152017.service($RequestHandler_11c1d152017.java)
>       at 
> org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26)
>       at $RequestHandler_11c1d152017.service($RequestHandler_11c1d152017.java)
>       at 
> org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:79)
>       at $RequestHandler_11c1d152017.service($RequestHandler_11c1d152017.java)
>       at 
> org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:93)
>       at 
> org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:84)
>       at 
> org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:83)
>       at 
> org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:106)
>       at $RequestHandler_11c1d152017.service($RequestHandler_11c1d152017.java)
>       at $RequestHandler_11c1d15200f.service($RequestHandler_11c1d15200f.java)
>       at 
> org.apache.tapestry5.services.TapestryModule$12.service(TapestryModule.java:933)
>       at 
> org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
>       at 
> $HttpServletRequestFilter_11c1d15200e.service($HttpServletRequestFilter_11c1d15200e.java)
>       at 
> $HttpServletRequestHandler_11c1d152010.service($HttpServletRequestHandler_11c1d152010.java)
>       at 
> $HttpServletRequestHandler_11c1d15200d.service($HttpServletRequestHandler_11c1d15200d.java)
>       at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:177)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>       at 
> org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>       at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
>       at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>       at 
> org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
>       at 
> org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
>       at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>       at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>       at 
> org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
>       at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>       at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
>       at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:437)
>       at 
> org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:366)
>       at 
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
>       at java.lang.Thread.run(Thread.java:595)
> Caused by: org.apache.tapestry5.ioc.internal.util.TapestryException: 
> au.com.voicelogic.teleblast.business.model.Campaign [at 
> classpath:org/apache/tapestry5/corelib/components/GridRows.tml, line 4, 
> column 81]
>       at 
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:909)
>       at 
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access$200(ComponentPageElementImpl.java:50)
>       at 
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$11.render(ComponentPageElementImpl.java:338)
>       at 
> org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:68)
>       ... 64 more
> Caused by: java.lang.ClassCastException: 
> au.com.voicelogic.teleblast.business.model.Campaign
>       at 
> $PropertyConduit_11c1d1520ca.navigate($PropertyConduit_11c1d1520ca.java)
>       at $PropertyConduit_11c1d1520ca.get($PropertyConduit_11c1d1520ca.java)
>       at 
> org.apache.tapestry5.internal.services.CoercingPropertyConduitWrapper.get(CoercingPropertyConduitWrapper.java:36)
>       at 
> org.apache.tapestry5.corelib.base.AbstractPropertyOutput.readPropertyForObject(AbstractPropertyOutput.java:138)
>       at 
> org.apache.tapestry5.corelib.base.AbstractPropertyOutput.renderPropertyValue(AbstractPropertyOutput.java:117)
>       at 
> org.apache.tapestry5.corelib.components.GridCell.beginRender(GridCell.java:28)
>       at 
> org.apache.tapestry5.corelib.components.GridCell.beginRender(GridCell.java)
>       at 
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$11$1.run(ComponentPageElementImpl.java:334)
>       at 
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:899)
>       ... 67 more
> 18:44:29,939 ERROR [PagePool] Page Page[ClientLandingPage en] is dirty, and 
> will be discarded (rather than returned to the page pool).
> Previous Case:
> When a bean editor receives beans from differenct classes (superclass & 
> subclass) sometimes the wrong fields are displayed and other times a 
> ClassCastException is throws in the CoercingPropertyConduitWrapper.
> This happens only, when bean editing is finished by the onSubmit method.
> TestCase: 
> TT1 is the superclasss of TT2
> TT1.java
> -------------------
> public class TT1 {
>       private String name;
>       
>       public String getName() {
>               return name;
>       }
>       
>       public void setName(String name) {
>               this.name = name;
>       }
> }
> TT2.java
> ----------------------------
> public class TT2 extends TT1 {
>       private String v2;
>       public String getV2() {
>               return v2;
>       }
>       public void setV2(String v2) {
>               this.v2 = v2;
>       }
> }
> CoercTest.java
> -----------------------
> public class CoercTest {
>       @Persist
>       private TT1 testObject;
>       
>       
>       @OnEvent(component="typeTO1")
>       public void onTypeTO1() {
>               setTestObject(new TT1());
>       }
>       
>       @OnEvent(component="typeTO2")
>       public void onTypeTO2() {
>               setTestObject(new TT2());               
>       }
>       public TT1 getTestObject() {
>               return testObject;
>       }
>       public void setTestObject(TT1 testObject) {
>               this.testObject = testObject;
>       }
>       
>       public void onSubmit() {
>               testObject = null;
>       }
>       
>       public boolean isTestObjectNotNull() {
>               return testObject != null;
>       }
>       
> }
> CoercTest.tml
> <html  xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd";>
> <body>
> <t:ActionLink t:id="typeTO1">TT1</t:ActionLink><br/>
> <t:ActionLink t:id="typeTO2">TT2</t:ActionLink><br/>
> <t:If test="testObjectNotNull">
> <t:BeanEditForm object="testObject"/>
> </t:If>
> </body>
> </html>

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