Tapestry 5
  1. Tapestry 5
  2. TAP5-733

AjaxFormLoop occasionally fails with "The rendered content did not include any elements that allow for the positioning of the hidden form field's element"

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 5.1.0.5
    • Fix Version/s: 5.2, 5.1.0.8
    • Component/s: tapestry-core
    • Labels:
      None

      Description

      First reported by the users at ProQuest and hard to reproduce.

        Activity

        Hide
        Christophe Cordenier added a comment -

        Duplicate from TAP5-1100, patch now applied on 5.1.0.8 too

        Show
        Christophe Cordenier added a comment - Duplicate from TAP5-1100 , patch now applied on 5.1.0.8 too
        Hide
        Christophe Cordenier added a comment -

        oops,

        Just noticed that this is duplicated with TAP5-1100 and solved for 5.2.

        Can we close this one ?

        Show
        Christophe Cordenier added a comment - oops, Just noticed that this is duplicated with TAP5-1100 and solved for 5.2. Can we close this one ?
        Hide
        Christophe Cordenier added a comment -

        Ok, i think i got it

        In fact during an Ajax call, because only the ajaxResponse block is rendered, t:body is not added in the render because

        initializeRenderPhases()

        has not been called on the ajaxformloop component, thus result is empty, thus not place to add hidden field.

        This differs from a complete page rendering when the AjaxFormLoop is initialized. So as long as the page instance remains in the pagepool and beforeRenderBodyPhase is different from null the body of the AjaxLoop will be displayed.

        I am still thinking for a clean patch for this.

        Sound it reasonable to move

        setupRenderPhase = new SetupRenderPhase();
        beginRenderPhase = new BeginRenderPhase();
        beforeRenderTemplatePhase = new BeforeRenderTemplatePhase();
        beforeRenderBodyPhase = new BeforeRenderBodyPhase();
        afterRenderBodyPhase = new AfterRenderBodyPhase();
        afterRenderTemplatePhase = new AfterRenderTemplatePhase();
        afterRenderPhase = new AfterRenderPhase();
        cleanupRenderPhase = new CleanupRenderPhase();

        in the constructor ?

        Show
        Christophe Cordenier added a comment - Ok, i think i got it In fact during an Ajax call, because only the ajaxResponse block is rendered, t:body is not added in the render because initializeRenderPhases() has not been called on the ajaxformloop component, thus result is empty, thus not place to add hidden field. This differs from a complete page rendering when the AjaxFormLoop is initialized. So as long as the page instance remains in the pagepool and beforeRenderBodyPhase is different from null the body of the AjaxLoop will be displayed. I am still thinking for a clean patch for this. Sound it reasonable to move setupRenderPhase = new SetupRenderPhase(); beginRenderPhase = new BeginRenderPhase(); beforeRenderTemplatePhase = new BeforeRenderTemplatePhase(); beforeRenderBodyPhase = new BeforeRenderBodyPhase(); afterRenderBodyPhase = new AfterRenderBodyPhase(); afterRenderTemplatePhase = new AfterRenderTemplatePhase(); afterRenderPhase = new AfterRenderPhase(); cleanupRenderPhase = new CleanupRenderPhase(); in the constructor ?
        Hide
        Christophe Cordenier added a comment -

        Hi

        After diving deep into the page pool invalidation theory, i have found that when a new page is assembled during the ajax request to add a row, the t:body element is missing in the RenderQueueImpl.

        I am currently looking into into ComponentAssembler to identify why assembly is incomplete in this case.

        Any hints ?

        Show
        Christophe Cordenier added a comment - Hi After diving deep into the page pool invalidation theory, i have found that when a new page is assembled during the ajax request to add a row, the t:body element is missing in the RenderQueueImpl. I am currently looking into into ComponentAssembler to identify why assembly is incomplete in this case. Any hints ?
        Hide
        Joost Schouten added a comment -

        Same here, I did have the problem and haven't seen it for a couple of months after switching to 5.2-SNAPSHOT.

        Show
        Joost Schouten added a comment - Same here, I did have the problem and haven't seen it for a couple of months after switching to 5.2-SNAPSHOT.
        Hide
        Andrej Aschenbrenner added a comment -

        I can confirm that this bug is fixed in the latest Tapestry snapshots.
        At least I didn't see this errors since I'm using the snapshot tapestry-core-5.2.0-20100606.051753-94.jar

        Show
        Andrej Aschenbrenner added a comment - I can confirm that this bug is fixed in the latest Tapestry snapshots. At least I didn't see this errors since I'm using the snapshot tapestry-core-5.2.0-20100606.051753-94.jar
        Hide
        Greg Pagendam-Turner added a comment -

        Return value of a successful call gives:

        {"content":"<td><input value='H4sIAAAAAAAAAJWSv04bQRDGF0QUIXcIP0AkBxIEZ/znwIAUyQm4siwkkxTp5s5zl0V7u8vuGJ+bPECKPEKk9MArIERBxzvwALQWRRRl72xZkSI5uFrNNzvf/GY0F4/sxWCTbWAKiRZoywRB9jRPIW0pk7SV0pV9cFHkIuEia9g7ZWIPNIRf0CPQaMkMfS9UBgUP3JtoJVGS9f52KXWHMvwEoo/fvreePv88TBfZQpsVQsHd3zxBbKV9CudQFiDjcpcMl/FBqp285W/vbNeruzW/Ua1Xag1/b+CxzdnQth8knKQiHnE0DvvDc7G7eWVnUlk6MTyO0Rydu+Sry+L+9e/RTc6+jJl0MtR4xr6yhYy08B5jLscGg7dsfTZixI0lCQk6On8mXQAWvWbgRAipxVH0Sl2kvn798bbwULz7NdmlkmSU6DjHKVExb5JJW5Xq7o4f9GrVuj8fW3NetmOjQrQ234O1XMnbq149Gv24X2Qs1YM3bG12cwGT3tkYL4mtZsI/MzzbJnMp/H9kS2CoBzRtW8yVQ6fMt7up0bjxvKeaVS25W2pGhGZ8S38AgmlTRagDAAA=' name='t:formdata' type='hidden'><\/input><\/td>\n\t\t\t\t\t\t\t<td><input size='10' id='firstName-12765bd3245' name='firstName-12765bd3245' type='text'><\/input><img id='firstName-12765bd3245-icon' class='t-error-icon t-invisible' alt='' src='/jumpstart/assets/tapestry/5.1.0.5/spacer.gif'/><\/td>\n\t\t\t\t\t\t\t<td><input size='10' id='lastName-12765bd3245' name='lastName-12765bd3245' type='text'><\/input><img id='lastName-12765bd3245-icon' class='t-error-icon t-invisible' alt='' src='/jumpstart/assets/tapestry/5.1.0.5/spacer.gif'/><\/td>\n\t\t\t\t\t\t\t<td><input size='10' value='' id='startDate-12765bd3245' name='startDate-12765bd3245' type='text'><\/input><img alt='[Show]' src='/jumpstart/assets/tapestry/5.1.0.5/corelib/components/datefield.gif' class='t-calendar-trigger' id='startDate-12765bd3245-trigger'/><img id='startDate-12765bd3245-icon' class='t-error-icon t-invisible' alt='' src='/jumpstart/assets/tapestry/5.1.0.5/spacer.gif'/><\/td>\n\t\t\t\t\t\t\t<!-- If optimistic locking is needed then uncomment this next line.\n\t\t\t\t\t\t\t\t<t:hidden t:id=\"version\" value=\"personHolder.person.version\"/> -->\n\t\t\t\t\t\t\t<td><a id='removerowlink-12765bd3245' href='#'>remove<\/a><\/td>","scripts":["/jumpstart/assets/datepicker/5.1.0.5/js/datepicker.js","/jumpstart/assets/tapestry/5.1.0.5/corelib/components/datefield.js"],"elementId":"rowInjector-12765bd3245","script":"Tapestry.init({\"formLoopRemoveLink\":[

        {\"link\":\"removerowlink-12765bd3245\",\"fragment\":\"rowInjector-12765bd3245\",\"url\":\"/jumpstart/examples/tables/ajaxformloop1.ajaxformloop:triggerremoverow/-50604273582413859\"}

        ],\"validate\":[[\"startDate-12765bd3245\",[[\"required\",\"You must provide a value for Start Date.\"]]],[\"firstName-12765bd3245\",[[\"required\",\"You must provide a value for First Name.\"],[\"maxlength\",\"You may provide at most 10 characters for First Name.\",10]]],[\"lastName-12765bd3245\",[[\"required\",\"You must provide a value for Last Name.\"],[\"maxlength\",\"You may provide at most 10 characters for Last Name.\",10]]]],\"dateField\":[{\"field\":\"startDate-12765bd3245\",\"localization\":

        {\"firstDay\":6,\"months\":[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\",\"\"],\"days\":\"mtwtfss\"}

        ,\"formatURL\":\"/jumpstart/examples/tables/ajaxformloop1.startdate:format\",\"parseURL\":\"/jumpstart/examples/tables/ajaxformloop1.startdate:parse\"}]});\n","stylesheets":[

        {"href":"/jumpstart/assets/datepicker/5.1.0.5/css/datepicker.css"}

        ]}

        Show
        Greg Pagendam-Turner added a comment - Return value of a successful call gives: {"content":"<td><input value='H4sIAAAAAAAAAJWSv04bQRDGF0QUIXcIP0AkBxIEZ/znwIAUyQm4siwkkxTp5s5zl0V7u8vuGJ+bPECKPEKk9MArIERBxzvwALQWRRRl72xZkSI5uFrNNzvf/GY0F4/sxWCTbWAKiRZoywRB9jRPIW0pk7SV0pV9cFHkIuEia9g7ZWIPNIRf0CPQaMkMfS9UBgUP3JtoJVGS9f52KXWHMvwEoo/fvreePv88TBfZQpsVQsHd3zxBbKV9CudQFiDjcpcMl/FBqp285W/vbNeruzW/Ua1Xag1/b+CxzdnQth8knKQiHnE0DvvDc7G7eWVnUlk6MTyO0Rydu+Sry+L+9e/RTc6+jJl0MtR4xr6yhYy08B5jLscGg7dsfTZixI0lCQk6On8mXQAWvWbgRAipxVH0Sl2kvn798bbwULz7NdmlkmSU6DjHKVExb5JJW5Xq7o4f9GrVuj8fW3NetmOjQrQ234O1XMnbq149Gv24X2Qs1YM3bG12cwGT3tkYL4mtZsI/MzzbJnMp/H9kS2CoBzRtW8yVQ6fMt7up0bjxvKeaVS25W2pGhGZ8S38AgmlTRagDAAA=' name='t:formdata' type='hidden'><\/input><\/td>\n\t\t\t\t\t\t\t<td><input size='10' id='firstName-12765bd3245' name='firstName-12765bd3245' type='text'><\/input><img id='firstName-12765bd3245-icon' class='t-error-icon t-invisible' alt='' src='/jumpstart/assets/tapestry/5.1.0.5/spacer.gif'/><\/td>\n\t\t\t\t\t\t\t<td><input size='10' id='lastName-12765bd3245' name='lastName-12765bd3245' type='text'><\/input><img id='lastName-12765bd3245-icon' class='t-error-icon t-invisible' alt='' src='/jumpstart/assets/tapestry/5.1.0.5/spacer.gif'/><\/td>\n\t\t\t\t\t\t\t<td><input size='10' value='' id='startDate-12765bd3245' name='startDate-12765bd3245' type='text'><\/input><img alt=' [Show] ' src='/jumpstart/assets/tapestry/5.1.0.5/corelib/components/datefield.gif' class='t-calendar-trigger' id='startDate-12765bd3245-trigger'/><img id='startDate-12765bd3245-icon' class='t-error-icon t-invisible' alt='' src='/jumpstart/assets/tapestry/5.1.0.5/spacer.gif'/><\/td>\n\t\t\t\t\t\t\t<!-- If optimistic locking is needed then uncomment this next line.\n\t\t\t\t\t\t\t\t<t:hidden t:id=\"version\" value=\"personHolder.person.version\"/> -->\n\t\t\t\t\t\t\t<td><a id='removerowlink-12765bd3245' href='#'>remove<\/a><\/td>","scripts": ["/jumpstart/assets/datepicker/5.1.0.5/js/datepicker.js","/jumpstart/assets/tapestry/5.1.0.5/corelib/components/datefield.js"] ,"elementId":"rowInjector-12765bd3245","script":"Tapestry.init({\"formLoopRemoveLink\":[ {\"link\":\"removerowlink-12765bd3245\",\"fragment\":\"rowInjector-12765bd3245\",\"url\":\"/jumpstart/examples/tables/ajaxformloop1.ajaxformloop:triggerremoverow/-50604273582413859\"} ],\"validate\":[[\"startDate-12765bd3245\",[ [\"required\",\"You must provide a value for Start Date.\"] ]],[\"firstName-12765bd3245\",[ [\"required\",\"You must provide a value for First Name.\"] , [\"maxlength\",\"You may provide at most 10 characters for First Name.\",10] ]],[\"lastName-12765bd3245\",[ [\"required\",\"You must provide a value for Last Name.\"] , [\"maxlength\",\"You may provide at most 10 characters for Last Name.\",10] ]]],\"dateField\":[{\"field\":\"startDate-12765bd3245\",\"localization\": {\"firstDay\":6,\"months\":[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\",\"\"],\"days\":\"mtwtfss\"} ,\"formatURL\":\"/jumpstart/examples/tables/ajaxformloop1.startdate:format\",\"parseURL\":\"/jumpstart/examples/tables/ajaxformloop1.startdate:parse\"}]});\n","stylesheets":[ {"href":"/jumpstart/assets/datepicker/5.1.0.5/css/datepicker.css"} ]}
        Hide
        Dariusz Majewski added a comment - - edited

        In my case Blackbird console shows following error:

        1. Communication with the server failed: The rendered content did not include any elements that allow for the positioning of the hidden form field's element.
        2. Ajax failure: Status 500 for /portal/material/page1.photos.rowinjector:inject/2135486824?t:formcomponentid=material/Page1:photosform&t:formid=photosForm: The rendered content did not include any elements that allow for the positioning of the hidden form field's element.

        But after analysing server response with firebug, server returns tapestry exception page with following stacktrace:

        • org.apache.tapestry5.corelib.internal.HiddenFieldPositioner.getElement(HiddenFieldPositioner.java:74)
        • org.apache.tapestry5.corelib.components.FormInjector$1.renderMarkup(FormInjector.java:236)
        • org.apache.tapestry5.internal.services.PageRenderQueueImpl$Bridge.renderMarkup(PageRenderQueueImpl.java:62)
        • org.apache.tapestry5.corelib.components.AjaxFormLoop$10.renderMarkup(AjaxFormLoop.java:416)
        • org.apache.tapestry5.internal.services.PageRenderQueueImpl$Bridge.renderMarkup(PageRenderQueueImpl.java:62)
        • org.apache.tapestry5.internal.services.PageRenderQueueImpl.renderPartial(PageRenderQueueImpl.java:159)
        • $PageRenderQueue_1258fac3ab5.renderPartial($PageRenderQueue_1258fac3ab5.java)
        • $PageRenderQueue_1258fac3aad.renderPartial($PageRenderQueue_1258fac3aad.java)
        • org.apache.tapestry5.internal.services.PartialMarkupRendererTerminator.renderMarkup(PartialMarkupRendererTerminator.java:39)
        • org.apache.tapestry5.services.TapestryModule$32.renderMarkup(TapestryModule.java:1868)
        • $PartialMarkupRenderer_1258fac3b4e.renderMarkup($PartialMarkupRenderer_1258fac3b4e.java)
        • org.apache.tapestry5.services.TapestryModule$31.renderMarkup(TapestryModule.java:1852)
        • $PartialMarkupRenderer_1258fac3b4e.renderMarkup($PartialMarkupRenderer_1258fac3b4e.java)
        • org.apache.tapestry5.services.TapestryModule$30.renderMarkup(TapestryModule.java:1834)
        • $PartialMarkupRenderer_1258fac3b4e.renderMarkup($PartialMarkupRenderer_1258fac3b4e.java)
        • org.apache.tapestry5.services.TapestryModule$29.renderMarkup(TapestryModule.java:1816)
        • $PartialMarkupRenderer_1258fac3b4e.renderMarkup($PartialMarkupRenderer_1258fac3b4e.java)
        • org.apache.tapestry5.services.TapestryModule$28.renderMarkup(TapestryModule.java:1790)
        • $PartialMarkupRenderer_1258fac3b4e.renderMarkup($PartialMarkupRenderer_1258fac3b4e.java)
        • $PartialMarkupRenderer_1258fac3b4d.renderMarkup($PartialMarkupRenderer_1258fac3b4d.java)
        • org.apache.tapestry5.internal.services.AjaxPartialResponseRendererImpl.renderPartialPageMarkup(AjaxPartialResponseRendererImpl.java:79)
        • $AjaxPartialResponseRenderer_1258fac3b4b.renderPartialPageMarkup($AjaxPartialResponseRenderer_1258fac3b4b.java)
        • org.apache.tapestry5.internal.services.AjaxComponentEventRequestHandler.handle(AjaxComponentEventRequestHandler.java:118)
        • $ComponentEventRequestHandler_1258fac3b06.handle($ComponentEventRequestHandler_1258fac3b06.java)
        • org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
        • $ComponentEventRequestHandler_1258fac3b08.handle($ComponentEventRequestHandler_1258fac3b08.java)
        • org.apache.tapestry5.upload.internal.services.UploadExceptionFilter.handle(UploadExceptionFilter.java:75)
        • $ComponentEventRequestHandler_1258fac3b08.handle($ComponentEventRequestHandler_1258fac3b08.java)
        • org.apache.tapestry5.services.TapestryModule$36.handle(TapestryModule.java:2164)
        • $ComponentEventRequestHandler_1258fac3b08.handle($ComponentEventRequestHandler_1258fac3b08.java)
        • $ComponentEventRequestHandler_1258fac3a4d.handle($ComponentEventRequestHandler_1258fac3a4d.java)
        • org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43)
        • $ComponentRequestHandler_1258fac3a40.handleComponentEvent($ComponentRequestHandler_1258fac3a40.java)
        • org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:46)
        • $Dispatcher_1258fac3a43.dispatch($Dispatcher_1258fac3a43.java)
        • $Dispatcher_1258fac3a39.dispatch($Dispatcher_1258fac3a39.java)
        • org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:245)
        • com.test.portal.services.AppModule$1.service(AppModule.java:176)
        • $RequestFilter_1258fac3a38.service($RequestFilter_1258fac3a38.java)
        • $RequestHandler_1258fac3a3a.service($RequestHandler_1258fac3a3a.java)
        • org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26)
        • $RequestHandler_1258fac3a3a.service($RequestHandler_1258fac3a3a.java)
        • org.apache.tapestry5.services.TapestryModule$4.service(TapestryModule.java:778)
        • $RequestHandler_1258fac3a3a.service($RequestHandler_1258fac3a3a.java)
        • org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:767)
        • $RequestHandler_1258fac3a3a.service($RequestHandler_1258fac3a3a.java)
        • org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:85)
        • $RequestHandler_1258fac3a3a.service($RequestHandler_1258fac3a3a.java)
        • org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:90)
        • org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:81)
        • org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85)
        • org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:103)
        • $RequestHandler_1258fac3a3a.service($RequestHandler_1258fac3a3a.java)
        • $RequestHandler_1258fac3a30.service($RequestHandler_1258fac3a30.java)
        • org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:197)
        • org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44)
        • $HttpServletRequestHandler_1258fac3a32.service($HttpServletRequestHandler_1258fac3a32.java)
        • org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53)
        • $HttpServletRequestHandler_1258fac3a32.service($HttpServletRequestHandler_1258fac3a32.java)
        • org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
        • $HttpServletRequestFilter_1258fac3a2e.service($HttpServletRequestFilter_1258fac3a2e.java)
        • $HttpServletRequestHandler_1258fac3a32.service($HttpServletRequestHandler_1258fac3a32.java)
        • org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:726)
        • $HttpServletRequestHandler_1258fac3a32.service($HttpServletRequestHandler_1258fac3a32.java)
        • $HttpServletRequestHandler_1258fac3a2c.service($HttpServletRequestHandler_1258fac3a2c.java)
        • org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:127)
        • org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        • org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
        • org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        • org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        • org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:722)
        • org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:404)
        • org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
        • org.mortbay.jetty.Server.handle(Server.java:324)
        • org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
        • org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:828)
        • org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
        • org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
        • org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
        • org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
        • org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)

        I hope this will be helpfull.
        I'm using tapestry 5.1.0.5, jdk1.6.0_11, jetty 6.1.6

        Show
        Dariusz Majewski added a comment - - edited In my case Blackbird console shows following error: Communication with the server failed: The rendered content did not include any elements that allow for the positioning of the hidden form field's element. Ajax failure: Status 500 for /portal/material/page1.photos.rowinjector:inject/2135486824?t:formcomponentid=material/Page1:photosform&t:formid=photosForm: The rendered content did not include any elements that allow for the positioning of the hidden form field's element. But after analysing server response with firebug, server returns tapestry exception page with following stacktrace: org.apache.tapestry5.corelib.internal.HiddenFieldPositioner.getElement(HiddenFieldPositioner.java:74) org.apache.tapestry5.corelib.components.FormInjector$1.renderMarkup(FormInjector.java:236) org.apache.tapestry5.internal.services.PageRenderQueueImpl$Bridge.renderMarkup(PageRenderQueueImpl.java:62) org.apache.tapestry5.corelib.components.AjaxFormLoop$10.renderMarkup(AjaxFormLoop.java:416) org.apache.tapestry5.internal.services.PageRenderQueueImpl$Bridge.renderMarkup(PageRenderQueueImpl.java:62) org.apache.tapestry5.internal.services.PageRenderQueueImpl.renderPartial(PageRenderQueueImpl.java:159) $PageRenderQueue_1258fac3ab5.renderPartial($PageRenderQueue_1258fac3ab5.java) $PageRenderQueue_1258fac3aad.renderPartial($PageRenderQueue_1258fac3aad.java) org.apache.tapestry5.internal.services.PartialMarkupRendererTerminator.renderMarkup(PartialMarkupRendererTerminator.java:39) org.apache.tapestry5.services.TapestryModule$32.renderMarkup(TapestryModule.java:1868) $PartialMarkupRenderer_1258fac3b4e.renderMarkup($PartialMarkupRenderer_1258fac3b4e.java) org.apache.tapestry5.services.TapestryModule$31.renderMarkup(TapestryModule.java:1852) $PartialMarkupRenderer_1258fac3b4e.renderMarkup($PartialMarkupRenderer_1258fac3b4e.java) org.apache.tapestry5.services.TapestryModule$30.renderMarkup(TapestryModule.java:1834) $PartialMarkupRenderer_1258fac3b4e.renderMarkup($PartialMarkupRenderer_1258fac3b4e.java) org.apache.tapestry5.services.TapestryModule$29.renderMarkup(TapestryModule.java:1816) $PartialMarkupRenderer_1258fac3b4e.renderMarkup($PartialMarkupRenderer_1258fac3b4e.java) org.apache.tapestry5.services.TapestryModule$28.renderMarkup(TapestryModule.java:1790) $PartialMarkupRenderer_1258fac3b4e.renderMarkup($PartialMarkupRenderer_1258fac3b4e.java) $PartialMarkupRenderer_1258fac3b4d.renderMarkup($PartialMarkupRenderer_1258fac3b4d.java) org.apache.tapestry5.internal.services.AjaxPartialResponseRendererImpl.renderPartialPageMarkup(AjaxPartialResponseRendererImpl.java:79) $AjaxPartialResponseRenderer_1258fac3b4b.renderPartialPageMarkup($AjaxPartialResponseRenderer_1258fac3b4b.java) org.apache.tapestry5.internal.services.AjaxComponentEventRequestHandler.handle(AjaxComponentEventRequestHandler.java:118) $ComponentEventRequestHandler_1258fac3b06.handle($ComponentEventRequestHandler_1258fac3b06.java) org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42) $ComponentEventRequestHandler_1258fac3b08.handle($ComponentEventRequestHandler_1258fac3b08.java) org.apache.tapestry5.upload.internal.services.UploadExceptionFilter.handle(UploadExceptionFilter.java:75) $ComponentEventRequestHandler_1258fac3b08.handle($ComponentEventRequestHandler_1258fac3b08.java) org.apache.tapestry5.services.TapestryModule$36.handle(TapestryModule.java:2164) $ComponentEventRequestHandler_1258fac3b08.handle($ComponentEventRequestHandler_1258fac3b08.java) $ComponentEventRequestHandler_1258fac3a4d.handle($ComponentEventRequestHandler_1258fac3a4d.java) org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43) $ComponentRequestHandler_1258fac3a40.handleComponentEvent($ComponentRequestHandler_1258fac3a40.java) org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:46) $Dispatcher_1258fac3a43.dispatch($Dispatcher_1258fac3a43.java) $Dispatcher_1258fac3a39.dispatch($Dispatcher_1258fac3a39.java) org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:245) com.test.portal.services.AppModule$1.service(AppModule.java:176) $RequestFilter_1258fac3a38.service($RequestFilter_1258fac3a38.java) $RequestHandler_1258fac3a3a.service($RequestHandler_1258fac3a3a.java) org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26) $RequestHandler_1258fac3a3a.service($RequestHandler_1258fac3a3a.java) org.apache.tapestry5.services.TapestryModule$4.service(TapestryModule.java:778) $RequestHandler_1258fac3a3a.service($RequestHandler_1258fac3a3a.java) org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:767) $RequestHandler_1258fac3a3a.service($RequestHandler_1258fac3a3a.java) org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:85) $RequestHandler_1258fac3a3a.service($RequestHandler_1258fac3a3a.java) org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:90) org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:81) org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85) org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:103) $RequestHandler_1258fac3a3a.service($RequestHandler_1258fac3a3a.java) $RequestHandler_1258fac3a30.service($RequestHandler_1258fac3a30.java) org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:197) org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44) $HttpServletRequestHandler_1258fac3a32.service($HttpServletRequestHandler_1258fac3a32.java) org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53) $HttpServletRequestHandler_1258fac3a32.service($HttpServletRequestHandler_1258fac3a32.java) org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) $HttpServletRequestFilter_1258fac3a2e.service($HttpServletRequestFilter_1258fac3a2e.java) $HttpServletRequestHandler_1258fac3a32.service($HttpServletRequestHandler_1258fac3a32.java) org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:726) $HttpServletRequestHandler_1258fac3a32.service($HttpServletRequestHandler_1258fac3a32.java) $HttpServletRequestHandler_1258fac3a2c.service($HttpServletRequestHandler_1258fac3a2c.java) org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:127) org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360) org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:722) org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:404) org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139) org.mortbay.jetty.Server.handle(Server.java:324) org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505) org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:828) org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514) org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395) org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450) I hope this will be helpfull. I'm using tapestry 5.1.0.5, jdk1.6.0_11, jetty 6.1.6
        Hide
        Seth Call added a comment -

        I also see this issue, but I can't determine what causes it. Sometimes it happens immediately after refreshing the page (within seconds of loading the page). After some number of refreshes, then the problem just goes away for a while again.

        Show
        Seth Call added a comment - I also see this issue, but I can't determine what causes it. Sometimes it happens immediately after refreshing the page (within seconds of loading the page). After some number of refreshes, then the problem just goes away for a while again.
        Hide
        Andrej Aschenbrenner added a comment -

        In my case it is in most cases the first time I call a page and then click immediately (< 1 minute) on any AjaxFormLoop trigger (addRow or removeRow) -> the Exception shows. My pages have many AjaxFormLoops and they are always loaded per AJAX calls in a Zone. When this exception occurs then all AjaxFormLoops are failing not just one! When I refresh the Zone per AJAX the second time then all AjaxFormLoops are working again.

        Show
        Andrej Aschenbrenner added a comment - In my case it is in most cases the first time I call a page and then click immediately (< 1 minute) on any AjaxFormLoop trigger (addRow or removeRow) -> the Exception shows. My pages have many AjaxFormLoops and they are always loaded per AJAX calls in a Zone. When this exception occurs then all AjaxFormLoops are failing not just one! When I refresh the Zone per AJAX the second time then all AjaxFormLoops are working again.
        Hide
        Howard M. Lewis Ship added a comment -

        Theory: The ten minutes is long enough for the page instance to be discarded; thus it looks like there's some unintentional persistent state inside AjaxFormLoop that causes the issue.

        Show
        Howard M. Lewis Ship added a comment - Theory: The ten minutes is long enough for the page instance to be discarded; thus it looks like there's some unintentional persistent state inside AjaxFormLoop that causes the issue.
        Hide
        Suresh Karri added a comment -

        Now we know how to reproduce it consistently. Open the page with AjaxFormloop and after an inactivity of about 10 minutes 'Add Row' link causes this error. Delete link works without any problem.

        Show
        Suresh Karri added a comment - Now we know how to reproduce it consistently. Open the page with AjaxFormloop and after an inactivity of about 10 minutes 'Add Row' link causes this error. Delete link works without any problem.
        Hide
        Howard M. Lewis Ship added a comment -

        The scenario is that the page with AjaxFormLoop works correctly for a while, then starts to fail. Not sure what could cause this and so far it's been hard to reproduce.

        Show
        Howard M. Lewis Ship added a comment - The scenario is that the page with AjaxFormLoop works correctly for a while, then starts to fail. Not sure what could cause this and so far it's been hard to reproduce.

          People

          • Assignee:
            Christophe Cordenier
            Reporter:
            Howard M. Lewis Ship
          • Votes:
            6 Vote for this issue
            Watchers:
            8 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development