Tapestry 5
  1. Tapestry 5
  2. TAP5-1727

PageCatalog page can fail with an odd ClassCastException

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 5.3
    • Fix Version/s: 5.3
    • Component/s: tapestry-core
    • Labels:
      None

      Description

      Using PageCatalog gives me an error when I click reload component classes.

      ERROR [10:46:56,168] tpool0-15 (tapestry5.ioc.Registry:127) - Render queue error in BeginRender[core/PageCatalog:beandisplay.propertydisplay]: org.apache.tapestry5.corelib.pages.PageCatalog$Totals cannot be cast to org.apache.tapestry5.corelib.pages.PageCatalog$Totals
      ERROR [10:46:56,168] tpool0-15 (tapestry5.ioc.Registry:128) - Operations trace:
      ERROR [10:46:56,183] tpool0-15 (tapestry5.ioc.Registry:137) - [ 1] Triggering event 'action' on core/PageCatalog:reloadclasses
      ERROR [10:46:56,183] tpool0-15 (tapestry5.ioc.Registry:137) - [ 2] Handling result from method org.apache.tapestry5.corelib.pages.PageCatalog.onActionFromReloadClasses().
      ERROR [10:46:56,183] tpool0-15 (services.TapestryModule.RequestExceptionHandler:63) - Processing of request failed with uncaught exception: Render queue error in BeginRender[core/PageCatalog:beandisplay.propertydisplay]: org.apache.tapestry5.corelib.pages.PageCatalog$Totals cannot be cast to org.apache.tapestry5.corelib.pages.PageCatalog$Totals
      org.apache.tapestry5.runtime.ComponentEventException: Render queue error in BeginRender[core/PageCatalog:beandisplay.propertydisplay]: org.apache.tapestry5.corelib.pages.PageCatalog$Totals cannot be cast to org.apache.tapestry5.corelib.pages.PageCatalog$Totals [at classpath:org/apache/tapestry5/corelib/pages/PageCatalog.tml, line 19]
      at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.processEventTriggering(ComponentPageElementImpl.java:1130)
      at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access$3200(ComponentPageElementImpl.java:61)
      at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$5.invoke(ComponentPageElementImpl.java:1051)
      at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$5.invoke(ComponentPageElementImpl.java:1048)
      at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
      at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
      at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1114)
      at org.apache.tapestry5.internal.structure.ComponentPageElementResourcesImpl.invoke(ComponentPageElementResourcesImpl.java:146)
      at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1047)
      at org.apache.tapestry5.internal.services.AjaxComponentEventRequestHandler.handle(AjaxComponentEventRequestHandler.java:110)
      at org.apache.tapestry5.internal.services.ajax.AjaxFormUpdateFilter.handle(AjaxFormUpdateFilter.java:56)
      at $ComponentEventRequestHandler_280af7aa767.handle(Unknown Source)
      at $ComponentEventRequestHandler_280af7aa1cd.handle(Unknown Source)
      at org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
      at $ComponentEventRequestHandler_280af7aa1cf.handle(Unknown Source)
      at org.apache.tapestry5.upload.internal.services.UploadExceptionFilter.handle(UploadExceptionFilter.java:75)
      at $ComponentEventRequestHandler_280af7aa1cf.handle(Unknown Source)
      at org.apache.tapestry5.services.TapestryModule$40.handle(TapestryModule.java:2454)
      at $ComponentEventRequestHandler_280af7aa1cf.handle(Unknown Source)
      at $ComponentEventRequestHandler_280af7aa041.handle(Unknown Source)
      at org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43)
      at org.apache.tapestry5.services.InitializeActivePageName.handleComponentEvent(InitializeActivePageName.java:39)
      at $ComponentRequestHandler_280af7aa042.handleComponentEvent(Unknown Source)
      at $ComponentRequestHandler_280af7a9fb5.handleComponentEvent(Unknown Source)
      at com.proquest.apps.corelib.tapestry.dispatchers.RedirectComponentEventDispatcher.dispatch(RedirectComponentEventDispatcher.java:50)
      at $Dispatcher_280af7a9fbf.dispatch(Unknown Source)
      at $Dispatcher_280af7a9f8b.dispatch(Unknown Source)
      at org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:302)
      at com.proquest.apps.onesearch.services.OneSearchLocalizationFilter.service(OneSearchLocalizationFilter.java:46)
      at $RequestFilter_280af7a9f8e.service(Unknown Source)
      at $RequestFilter_280af7a9f89.service(Unknown Source)
      at $RequestHandler_280af7a9f8c.service(Unknown Source)
      at com.proquest.apps.onesearch.stats.STLRequestFilter.service(STLRequestFilter.java:50)
      at $RequestFilter_280af7a9f8d.service(Unknown Source)
      at $RequestFilter_280af7a9f8a.service(Unknown Source)
      at $RequestHandler_280af7a9f8c.service(Unknown Source)
      at org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26)
      at $RequestHandler_280af7a9f8c.service(Unknown Source)
      at org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:902)
      at $RequestHandler_280af7a9f8c.service(Unknown Source)
      at org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:892)
      at $RequestHandler_280af7a9f8c.service(Unknown Source)
      at org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:90)
      at $RequestHandler_280af7a9f8c.service(Unknown Source)
      at com.proquest.apps.corelib.AppCoreLibModule$16.service(AppCoreLibModule.java:689)
      at $RequestFilter_280af7a9f86.service(Unknown Source)
      at $RequestHandler_280af7a9f8c.service(Unknown Source)
      at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:105)
      at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:95)
      at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85)
      at org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:119)
      at $RequestHandler_280af7a9f8c.service(Unknown Source)
      at $RequestHandler_280af7a9f7f.service(Unknown Source)
      at org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:253)
      at org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44)
      at $HttpServletRequestHandler_280af7a9f81.service(Unknown Source)
      at com.proquest.apps.onesearch.oneadmin.OneAdminRequestFilter.service(OneAdminRequestFilter.java:50)
      at $HttpServletRequestFilter_280af7a9f7d.service(Unknown Source)
      at $HttpServletRequestHandler_280af7a9f81.service(Unknown Source)
      at com.proquest.apps.onesearch.email.EmailHttpServletRequestFilter.service(EmailHttpServletRequestFilter.java:83)
      at $HttpServletRequestFilter_280af7a9f7c.service(Unknown Source)
      at $HttpServletRequestHandler_280af7a9f81.service(Unknown Source)
      at com.proquest.apps.onesearch.services.SiteRedirectHttpServletRequestFilter.service(SiteRedirectHttpServletRequestFilter.java:45)
      at $HttpServletRequestFilter_280af7a9f7b.service(Unknown Source)
      at $HttpServletRequestHandler_280af7a9f81.service(Unknown Source)
      at org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53)
      at $HttpServletRequestHandler_280af7a9f81.service(Unknown Source)
      at org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
      at $HttpServletRequestFilter_280af7a9f78.service(Unknown Source)
      at $HttpServletRequestHandler_280af7a9f81.service(Unknown Source)
      at com.proquest.apps.corelib.AppCoreLibModule$17.service(AppCoreLibModule.java:815)
      at $HttpServletRequestFilter_280af7a9f76.service(Unknown Source)
      at $HttpServletRequestHandler_280af7a9f81.service(Unknown Source)
      at org.apache.tapestry5.services.TapestryModule$1.service(TapestryModule.java:852)
      at $HttpServletRequestHandler_280af7a9f81.service(Unknown Source)
      at $HttpServletRequestHandler_280af7a9f75.service(Unknown Source)
      at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:171)
      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
      at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
      at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
      at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
      at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:722)
      at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:404)
      at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
      at org.mortbay.jetty.Server.handle(Server.java:324)
      at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
      at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:842)
      at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:648)
      at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
      at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
      at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
      at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)
      Caused by: org.apache.tapestry5.ioc.internal.OperationException: Render queue error in BeginRender[core/PageCatalog:beandisplay.propertydisplay]: org.apache.tapestry5.corelib.pages.PageCatalog$Totals cannot be cast to org.apache.tapestry5.corelib.pages.PageCatalog$Totals [at classpath:org/apache/tapestry5/corelib/components/BeanDisplay.tml, line 9]
      at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.logAndRethrow(OperationTrackerImpl.java:121)
      at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:88)
      at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
      at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1114)
      at org.apache.tapestry5.internal.structure.ComponentPageElementResourcesImpl.invoke(ComponentPageElementResourcesImpl.java:146)
      at org.apache.tapestry5.internal.services.EventImpl.storeResult(EventImpl.java:84)
      at org.apache.tapestry5.corelib.pages.PageCatalog.dispatchComponentEvent(PageCatalog.java)
      at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:923)
      at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.processEventTriggering(ComponentPageElementImpl.java:1106)
      ... 91 more
      Caused by: org.apache.tapestry5.internal.services.RenderQueueException: Render queue error in BeginRender[core/PageCatalog:beandisplay.propertydisplay]: org.apache.tapestry5.corelib.pages.PageCatalog$Totals cannot be cast to org.apache.tapestry5.corelib.pages.PageCatalog$Totals [at classpath:org/apache/tapestry5/corelib/components/BeanDisplay.tml, line 9]
      at org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:81)
      at org.apache.tapestry5.internal.services.PageRenderQueueImpl.render(PageRenderQueueImpl.java:124)
      at org.apache.tapestry5.internal.services.PageRenderQueueImpl$1.renderMarkup(PageRenderQueueImpl.java:142)
      at org.apache.tapestry5.internal.services.RenderCommandComponentEventResultProcessor.renderMarkup(RenderCommandComponentEventResultProcessor.java:78)
      at org.apache.tapestry5.internal.services.PageRenderQueueImpl$Bridge.renderMarkup(PageRenderQueueImpl.java:62)
      at org.apache.tapestry5.internal.services.ajax.AjaxResponseRendererImpl$1.renderMarkup(AjaxResponseRendererImpl.java:67)
      at org.apache.tapestry5.internal.services.PageRenderQueueImpl$Bridge.renderMarkup(PageRenderQueueImpl.java:62)
      at org.apache.tapestry5.internal.services.ajax.AjaxResponseRendererImpl$1.renderMarkup(AjaxResponseRendererImpl.java:67)
      at org.apache.tapestry5.internal.services.PageRenderQueueImpl$Bridge.renderMarkup(PageRenderQueueImpl.java:62)
      at org.apache.tapestry5.internal.services.PageRenderQueueImpl.renderPartial(PageRenderQueueImpl.java:159)
      at $PageRenderQueue_280af7aa16d.renderPartial(Unknown Source)
      at $PageRenderQueue_280af7aa16c.renderPartial(Unknown Source)
      at org.apache.tapestry5.internal.services.PartialMarkupRendererTerminator.renderMarkup(PartialMarkupRendererTerminator.java:45)
      at com.proquest.apps.onesearch.services.OneSearchModuleServices$2.renderMarkup(OneSearchModuleServices.java:456)
      at $PartialMarkupRenderer_280af7aac80.renderMarkup(Unknown Source)
      at org.apache.tapestry5.services.TapestryModule$36.renderMarkup(TapestryModule.java:2126)
      at $PartialMarkupRenderer_280af7aac80.renderMarkup(Unknown Source)
      at org.apache.tapestry5.services.TapestryModule$35.renderMarkup(TapestryModule.java:2110)
      at $PartialMarkupRenderer_280af7aac80.renderMarkup(Unknown Source)
      at org.apache.tapestry5.services.TapestryModule$34.renderMarkup(TapestryModule.java:2092)
      at $PartialMarkupRenderer_280af7aac80.renderMarkup(Unknown Source)
      at org.apache.tapestry5.services.TapestryModule$33.renderMarkup(TapestryModule.java:2076)
      at $PartialMarkupRenderer_280af7aac80.renderMarkup(Unknown Source)
      at org.apache.tapestry5.services.TapestryModule$32.renderMarkup(TapestryModule.java:2058)
      at $PartialMarkupRenderer_280af7aac80.renderMarkup(Unknown Source)
      at org.apache.tapestry5.services.TapestryModule$31.renderMarkup(TapestryModule.java:2033)
      at $PartialMarkupRenderer_280af7aac80.renderMarkup(Unknown Source)
      at $PartialMarkupRenderer_280af7aac7f.renderMarkup(Unknown Source)
      at org.apache.tapestry5.internal.services.AjaxPartialResponseRendererImpl.renderPartialPageMarkup(AjaxPartialResponseRendererImpl.java:89)
      at $AjaxPartialResponseRenderer_280af7aa766.renderPartialPageMarkup(Unknown Source)
      at org.apache.tapestry5.internal.services.RenderCommandComponentEventResultProcessor.processResultValue(RenderCommandComponentEventResultProcessor.java:58)
      at org.apache.tapestry5.internal.services.RenderCommandComponentEventResultProcessor.processResultValue(RenderCommandComponentEventResultProcessor.java:34)
      at $ComponentEventResultProcessor_280af7aac7e.processResultValue(Unknown Source)
      at $ComponentEventResultProcessor_280af7aa765.processResultValue(Unknown Source)
      at org.apache.tapestry5.internal.services.AjaxComponentEventRequestHandler$1.processResultValue(AjaxComponentEventRequestHandler.java:80)
      at org.apache.tapestry5.internal.services.ComponentResultProcessorWrapper.handleResult(ComponentResultProcessorWrapper.java:47)
      at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$6.handleResult(ComponentPageElementImpl.java:1078)
      at org.apache.tapestry5.internal.services.EventImpl$1.invoke(EventImpl.java:89)
      at org.apache.tapestry5.internal.services.EventImpl$1.invoke(EventImpl.java:86)
      at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
      ... 98 more
      Caused by: org.apache.tapestry5.ioc.internal.util.TapestryException: org.apache.tapestry5.corelib.pages.PageCatalog$Totals cannot be cast to org.apache.tapestry5.corelib.pages.PageCatalog$Totals [at classpath:org/apache/tapestry5/corelib/components/BeanDisplay.tml, line 9]
      at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.invoke(ComponentPageElementImpl.java:153)
      at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$BeginRenderPhase.render(ComponentPageElementImpl.java:209)
      at org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:72)
      ... 137 more
      Caused by: java.lang.ClassCastException: org.apache.tapestry5.corelib.pages.PageCatalog$Totals cannot be cast to org.apache.tapestry5.corelib.pages.PageCatalog$Totals
      at $InternalPropertyConduit_280af7aadee.getRoot(Unknown Source)
      at $InternalPropertyConduit_280af7aadee.get(Unknown Source)
      at org.apache.tapestry5.internal.services.CoercingPropertyConduitWrapper.get(CoercingPropertyConduitWrapper.java:36)
      at org.apache.tapestry5.corelib.base.AbstractPropertyOutput.readPropertyForObject(AbstractPropertyOutput.java:152)
      at org.apache.tapestry5.corelib.base.AbstractPropertyOutput.renderPropertyValue(AbstractPropertyOutput.java:132)
      at org.apache.tapestry5.corelib.components.PropertyDisplay.beginRender(PropertyDisplay.java:32)
      at org.apache.tapestry5.corelib.components.PropertyDisplay.beginRender(PropertyDisplay.java)
      at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$BeginRenderPhase.invokeComponent(ComponentPageElementImpl.java:202)
      at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.invoke(ComponentPageElementImpl.java:133)
      ... 139 more

        Activity

        Hide
        Hudson added a comment -

        Integrated in tapestry-trunk-freestyle #612 (See https://builds.apache.org/job/tapestry-trunk-freestyle/612/)
        TAP5-1727: PageCatalog page can fail with an odd ClassCastException

        hlship : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1189502
        Files :

        • /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/pages/PageCatalog.java
        • /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/PageCatalogTotals.java
        • /tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/pages/PageCatalog.tml
        Show
        Hudson added a comment - Integrated in tapestry-trunk-freestyle #612 (See https://builds.apache.org/job/tapestry-trunk-freestyle/612/ ) TAP5-1727 : PageCatalog page can fail with an odd ClassCastException hlship : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1189502 Files : /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/pages/PageCatalog.java /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/PageCatalogTotals.java /tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/pages/PageCatalog.tml
        Hide
        Howard M. Lewis Ship added a comment -

        Sorry, was going in circles. I didn't notice it was the "reload component classes" that causes the failure.

        Show
        Howard M. Lewis Ship added a comment - Sorry, was going in circles. I didn't notice it was the "reload component classes" that causes the failure.
        Hide
        Howard M. Lewis Ship added a comment -

        Unable to reproduce this in Tomcat, either.

        Show
        Howard M. Lewis Ship added a comment - Unable to reproduce this in Tomcat, either.
        Hide
        Andy Blower added a comment -

        It happens for both WAR deployed in Tomcat and Jetty started from IDE.

        Show
        Andy Blower added a comment - It happens for both WAR deployed in Tomcat and Jetty started from IDE.
        Hide
        Howard M. Lewis Ship added a comment -

        So far, unable to reproduce using mvn jetty:run or mvn jetty:run-war on a fresh project using beta-28.

        Show
        Howard M. Lewis Ship added a comment - So far, unable to reproduce using mvn jetty:run or mvn jetty:run-war on a fresh project using beta-28.
        Hide
        Howard M. Lewis Ship added a comment -

        There shouldn't be a problem with the Totals class being a nested class. Was this running packaged as a WAR or directly from within the IDE?

        Show
        Howard M. Lewis Ship added a comment - There shouldn't be a problem with the Totals class being a nested class. Was this running packaged as a WAR or directly from within the IDE?
        Hide
        Thiago H. de Paula Figueiredo added a comment -

        Oooops, facepalm! :-P

        This looks like the Totals nested class inside PageCatalog shouldn't be nested: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/pages/PageCatalog.java?view=markup.

        Show
        Thiago H. de Paula Figueiredo added a comment - Oooops, facepalm! :-P This looks like the Totals nested class inside PageCatalog shouldn't be nested: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/pages/PageCatalog.java?view=markup .
        Hide
        Andy Blower added a comment -

        It's a page in tapestry-core-5.3-beta-27.jar

        Show
        Andy Blower added a comment - It's a page in tapestry-core-5.3-beta-27.jar
        Hide
        Thiago H. de Paula Figueiredo added a comment -

        Hi!

        Could you post the source of PageCatalog?

        By the way, please post in one of the mailing lists before posting a JIRA.

        Cheers!

        Thiago

        Show
        Thiago H. de Paula Figueiredo added a comment - Hi! Could you post the source of PageCatalog? By the way, please post in one of the mailing lists before posting a JIRA. Cheers! Thiago
        Hide
        Andy Blower added a comment - - edited

        Here is a screenshot showing the error in the browser. (The blank error box is because of old tapestry.js from beta-22, ignore)

        Show
        Andy Blower added a comment - - edited Here is a screenshot showing the error in the browser. (The blank error box is because of old tapestry.js from beta-22, ignore)

          People

          • Assignee:
            Howard M. Lewis Ship
            Reporter:
            Andy Blower
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development