Any help ? :(
2014-08-06 15:21 GMT+02:00 squallmat . <squall...@gmail.com>: > Hi, > > I try to do a zone-update when adding or removing a row from an > ajaxformloop component. I have : > > <thead> > <t:Zone t:id="zoneTitle" id="zoneTitle"> > <t:If t:test="${displayFieldsTitle}"> > <tr> > <th>${message:fieldName}</th> > <th>${message:fieldContent}</th> > <th></th> > </tr> > </t:If> > </t:Zone> > </thead> > <tbody> > <tr t:type="AjaxFormLoop" t:id="champs" > t:source="applicatifDto.ChampList" t:value="champDto" > t:encoder="champDtoEncoder"> > <td><t:TextField style="width:100px;" > t:value="champDto.NomChamp" t:id="fieldName" /></td> > <td><t:TextField style="width:600px;" > t:value="champDto.ContenuChamp" t:id="fieldContent" /></td> > <td><t:RemoveRowLink>${message:deleteField}</t:RemoveRowLink></td> > <p:addRow> > <t:addrowlink>${message:addField}</t:addrowlink> > </p:addRow> > </tr> > </tbody> > </table> > > > > > And in the actions for adding and removing rows I do : > > // when adding a field row > Object onAddRowFromChamps() { > ChampDto champDto = new ChampDto(); > applicatifDto.getChampList().add(champDto); > if (displayFieldsTitle == false) { > displayFieldsTitle = true; > } > ajaxResponseRenderer.addRender("zoneTitle", zoneTitle); > return champDto; > } > > // event handler on removing a field row > void onRemoveRowFromChamps(ChampDto champDto) { > // applicatifDto.getChampList().remove(champDto); > applicatifDto.getChampList().set( > applicatifDto.getChampList().indexOf(champDto), null); > if (applicatifDto.getChampList().isEmpty()) { > displayFieldsTitle = false; > } > ajaxResponseRenderer.addRender("zoneTitle", zoneTitle); > } > > > But when I launched the paged and click on "add" I got this error : > > An unexpected application exception has occurred. > > Method > org.apache.tapestry5.corelib.internal.HiddenFieldPositioner.discard(HiddenFieldPositioner.java:105) > may no longer be invoked. > > > > console : > > Caused by: java.lang.IllegalStateException: Method > org.apache.tapestry5.corelib.internal.HiddenFieldPositioner.discard(HiddenFieldPositioner.java:105) > may no longer be invoked. > at > org.apache.tapestry5.ioc.internal.util.OneShotLock.innerCheck(OneShotLock.java:58) > at > org.apache.tapestry5.ioc.internal.util.OneShotLock.lock(OneShotLock.java:71) > at > org.apache.tapestry5.corelib.internal.HiddenFieldPositioner.discard(HiddenFieldPositioner.java:105) > at > org.apache.tapestry5.internal.services.ajax.AjaxFormUpdateControllerImpl.cleanupAfterPartialZoneRender(AjaxFormUpdateControllerImpl.java:114) > at > $AjaxFormUpdateController_1204ff7889d5.cleanupAfterPartialZoneRender(Unknown > Source) > at > $AjaxFormUpdateController_1204ff7889d1.cleanupAfterPartialZoneRender(Unknown > Source) > at > org.apache.tapestry5.internal.services.RenderCommandComponentEventResultProcessor.renderMarkup(RenderCommandComponentEventResultProcessor.java:80) > at > org.apache.tapestry5.internal.services.PageRenderQueueImpl$Bridge.renderMarkup(PageRenderQueueImpl.java:62) > at > org.apache.tapestry5.corelib.components.AjaxFormLoop$10.renderMarkup(AjaxFormLoop.java:436) > at > org.apache.tapestry5.internal.services.PageRenderQueueImpl$Bridge.renderMarkup(PageRenderQueueImpl.java:62) > at > org.apache.tapestry5.internal.services.ajax.SingleZonePartialRendererFilter.renderMarkup(SingleZonePartialRendererFilter.java:98) > at > org.apache.tapestry5.internal.services.PageRenderQueueImpl$Bridge.renderMarkup(PageRenderQueueImpl.java:62) > at > org.apache.tapestry5.internal.services.ajax.AjaxResponseRendererImpl$3.renderMarkup(AjaxResponseRendererImpl.java:111) > 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_1204ff788947.renderPartial(Unknown Source) > at $PageRenderQueue_1204ff788940.renderPartial(Unknown Source) > at > org.apache.tapestry5.internal.services.PartialMarkupRendererTerminator.renderMarkup(PartialMarkupRendererTerminator.java:45) > at > org.got5.tapestry5.jquery.services.js.JSModule$2.renderMarkup(JSModule.java:58) > at $PartialMarkupRenderer_1204ff7889d8.renderMarkup(Unknown Source) > at > org.apache.tapestry5.services.TapestryModule$37.renderMarkup(TapestryModule.java:2141) > at $PartialMarkupRenderer_1204ff7889d8.renderMarkup(Unknown Source) > at > org.apache.tapestry5.services.TapestryModule$36.renderMarkup(TapestryModule.java:2125) > at $PartialMarkupRenderer_1204ff7889d8.renderMarkup(Unknown Source) > at > org.apache.tapestry5.services.TapestryModule$35.renderMarkup(TapestryModule.java:2107) > at $PartialMarkupRenderer_1204ff7889d8.renderMarkup(Unknown Source) > at > org.apache.tapestry5.services.TapestryModule$34.renderMarkup(TapestryModule.java:2091) > at $PartialMarkupRenderer_1204ff7889d8.renderMarkup(Unknown Source) > at > org.apache.tapestry5.services.TapestryModule$33.renderMarkup(TapestryModule.java:2073) > at $PartialMarkupRenderer_1204ff7889d8.renderMarkup(Unknown Source) > at > org.apache.tapestry5.services.TapestryModule$32.renderMarkup(TapestryModule.java:2048) > at $PartialMarkupRenderer_1204ff7889d8.renderMarkup(Unknown Source) > at $PartialMarkupRenderer_1204ff7889d7.renderMarkup(Unknown Source) > at > org.apache.tapestry5.internal.services.AjaxPartialResponseRendererImpl.renderPartialPageMarkup(AjaxPartialResponseRendererImpl.java:89) > at > $AjaxPartialResponseRenderer_1204ff7889d3.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_1204ff7889d6.processResultValue(Unknown > Source) > at > $ComponentEventResultProcessor_1204ff7889d2.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:1089) > 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) > ... 96 more > [INFO] AppModule.TimingFilter Request time: 17 ms > > > > And I don't see why it doesn't work. >