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.

Reply via email to