Concurrent call to conversation problem in Seam on a sortable column
vuntermann Feb 4, 2010 1:38 PMHi everyone,
I get a concurrent call to conversation problem in Seam, when I tried to sort a column. I had many tables, so I created a generic table component.
Before to migrate my tables to the new component I had something like this:
<h:form id="formId">
<rich:dataTable id="sdiSearchResultTable" var="record"
value="#{sdiSearch.dataModel}" rows="#{sdiSearch.dataModel.pageSize}" width="100%" rowClasses="row1,row2" styleClass="table" reRender="sdiSearchResultTableFooter" sortMode="multi">
<rich:column sortBy="#{currencySortExpression}">
<f:facet name="header">
<h:outputText value="#{messages['sdiSearch.currency']}" />
</f:facet>
<h:outputText value="#{record.currencies}" />
</rich:column>
</rich:dataTable>
</h:form>
And the multiple clicks on a sortable column worked well.
After the migration of the tables to the new table component, I have something like this:
a rich table
column
dataColumn
sortableDataColumn
rich column
And the sortableDataColumn is the following:
<rich:column sortBy="#{sortByExpression}" rendered="#{column.visible}"
styleClass="#{column.styleClass}">
<f:facet name="header">
<h:outputText value="#{messages[columnLabel]}" />
</f:facet>
<h:outputText value="#{rowData[column.property]}" converter="#{column.converter}" />
</rich:column>
The sortByExpression indicates the property name to sort.
And when I tried multiple clicks on the a sortable column, then I get a call to conversation problem. I was reading http://achorniy.wordpress.com/2009/07/14/avoid-concurrent-call-to-conversation/ but these solutions seems to works on a4j:commandLink.
I also tried to change the h:form on the generic table component to a a4j:form:
<a4j:form eventsQueue="myFormQueue" requestDelay="100" ignoreDupResponses="true" />
but it did not work.
And when I tried adding a ajax support on the sortableDataColumn:
<h:outputText value="#{messages[columnLabel]}" >
<a4j:support event="onclick" eventsQueue="instancesQueue" ignoreDupResponses="true" requestDelay="50" />
</h:outputText>
it also did not work.
Anyone know how could I solve this problem?
Thanks in advance!!
Vanesa
I get a concurrent call to conversation problem in Seam, when I tried to sort a column. I had many tables, so I created a generic table component.
Before to migrate my tables to the new component I had something like this:
<h:form id="formId">
<rich:dataTable id="sdiSearchResultTable" var="record"
value="#{sdiSearch.dataModel}" rows="#{sdiSearch.dataModel.pageSize}" width="100%" rowClasses="row1,row2" styleClass="table" reRender="sdiSearchResultTableFooter" sortMode="multi">
<rich:column sortBy="#{currencySortExpression}">
<f:facet name="header">
<h:outputText value="#{messages['sdiSearch.currency']}" />
</f:facet>
<h:outputText value="#{record.currencies}" />
</rich:column>
</rich:dataTable>
</h:form>
And the multiple clicks on a sortable column worked well.
After the migration of the tables to the new table component, I have something like this:
a rich table
column
dataColumn
sortableDataColumn
rich column
And the sortableDataColumn is the following:
<rich:column sortBy="#{sortByExpression}" rendered="#{column.visible}"
styleClass="#{column.styleClass}">
<f:facet name="header">
<h:outputText value="#{messages[columnLabel]}" />
</f:facet>
<h:outputText value="#{rowData[column.property]}" converter="#{column.converter}" />
</rich:column>
The sortByExpression indicates the property name to sort.
And when I tried multiple clicks on the a sortable column, then I get a call to conversation problem. I was reading http://achorniy.wordpress.com/2009/07/14/avoid-concurrent-call-to-conversation/ but these solutions seems to works on a4j:commandLink.
I also tried to change the h:form on the generic table component to a a4j:form:
<a4j:form eventsQueue="myFormQueue" requestDelay="100" ignoreDupResponses="true" />
but it did not work.
And when I tried adding a ajax support on the sortableDataColumn:
<h:outputText value="#{messages[columnLabel]}" >
<a4j:support event="onclick" eventsQueue="instancesQueue" ignoreDupResponses="true" requestDelay="50" />
</h:outputText>
it also did not work.
Anyone know how could I solve this problem?
Thanks in advance!!
Vanesa