2 Replies Latest reply on Mar 11, 2011 5:49 PM by nbelaevski

    Concurrent call to conversation problem in Seam on a sortable column

      Hi 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