title: Row Editor does not update value object's fields displaying via "columns" tag
body: <p>I try to devise flexible table containing dynamic columns for CRUD operations.
  I use p:columns component to make dynamic columns, but those columns do not change value when I try to update it.</p>
  
  <pre><code>&lt;h:form id="form"&gt;
      &lt;p:dataTable id="dataTable"
                       var="item"
                       value="#{tableEditorController.items}"
                       editable="true"
                       paginator="true"
                       rows="10"  
                       paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  
                       rowsPerPageTemplate="5,10,15"&gt;
          &lt;p:ajax event="rowEdit" listener="#{tableEditorController.onEdit}" /&gt;
          &lt;f:facet name="header"&gt;  
              #{tableEditorController.tableName}
          &lt;/f:facet&gt;
          &lt;p:columns value="#{tableEditorController.columns}"
                     var="column"
                     columnIndexVar="colIndex"&gt;
              &lt;f:facet name="header"&gt;#{column.header}&lt;/f:facet&gt;
              &lt;p:cellEditor&gt;
                  &lt;f:facet name="output"&gt;
                      &lt;h:outputText value="#{item[column.property]}" /&gt;
                  &lt;/f:facet&gt;
                  &lt;f:facet name="input"&gt;
                      &lt;p:inputText value="#{item[column.property]}" style="width:100%"/&gt;
                  &lt;/f:facet&gt;
              &lt;/p:cellEditor&gt;
          &lt;/p:columns&gt;
          &lt;p:column&gt;
              &lt;f:facet name="header"&gt;test&lt;/f:facet&gt;
              &lt;p:cellEditor&gt;
                  &lt;f:facet name="output"&gt;
                      &lt;h:outputText value="#{item['activityName']}" /&gt;
                  &lt;/f:facet&gt;
                  &lt;f:facet name="input"&gt;
                      &lt;p:inputText value="#{item['activityName']}" style="width:100%"/&gt;
                  &lt;/f:facet&gt;
              &lt;/p:cellEditor&gt;
          &lt;/p:column&gt;
          &lt;p:column headerText="Edit" style="width:6%"&gt;  
              &lt;p:rowEditor /&gt;  
          &lt;/p:column&gt;
      &lt;/p:dataTable&gt;
  &lt;/h:form&gt;
  </code></pre>
  
  <p>When I click on link in "Edit" column all the cells in selected row turn into text input fields.
  If I edit a value in the "test" column and save, it saves properly as I expect.
  But if I edit value using an input field in column which was generated by p:columns tag and try to save, it does not save changes.</p>
  
  <p>I monitored http requests by Chrome Tools. The requests contain changed value in every case.</p>
  
  <p>I ran my code under debugger and a RowEditEvent contains new data in first case and unchanged data object in second.</p>
  
  <p>I cannot realize my mistake <s>and only thing left I doubt is square braces notation.</s>
  I checked square braces notation using in "test" column and it works fine.</p>
  
  <p>I use JSF 2.1.3 and Primefaces 3.3</p>
  
  <p>Controller class is following:</p>
  
  <pre><code>@ManagedBean
  @RequestScoped
  public class TableEditorController {
  
    private static List activityList;
  
    static{
        activityList = new ArrayList();
  
        ActivityType at = new ActivityTypeImpl();
        at.setActivityId(1L);
        at.setActivityName("FirstActivity");
        activityList.add(at);
  
        at = new ActivityTypeImpl();
        at.setActivityId(2L);
        at.setActivityName("Second Activity");
        activityList.add(at);
    }
  
    public void onEdit(RowEditEvent event){
        FacesMessage msg = new FacesMessage("Row Edited");
        msg.setDetail(event.toString() + event.getObject());
  
        FacesContext.getCurrentInstance().addMessage(null, msg); 
    }
  
    public void delete(Object id){
  
    }
  
    public List getItems(){
        return activityList;
    }
  
    public String getTableName(){
        return "Name of the Table";
    }
  
    public List&lt;ColumnModel&gt; getColumns(){
        ColumnModel m1 = new ColumnModel("ID", "activityId");
        ColumnModel m2 = new ColumnModel("Activity", "activityName");
        return Arrays.asList(m1, m2);
    }
  
  }
  </code></pre>
  
  <p>I will appreciate any suggestion and/or idea.</p>