title: Smart GWT doesn't update id in a listgrid
body: <p>I'm using <a href="http://www.smartclient.com/smartgwt/index.jsp?gclid=COafy_-W4qcCFYnd4Aod-W-28w" rel="nofollow">Smart GWT</a> 2.3.0 in any browser.</p>
  
  <p>I have a listgrid simple only with data. And when I create new register it doesn't update my id.</p>
  
  <p>I read the <a href="http://forums.smartclient.com/showthread.php?t=8159#aGrid" rel="nofollow">faq problem</a> about that, and I think I have everything correct.</p>
  
  <p>the code of data source is:</p>
  
  <pre><code>DataSource ds = null;
      try {
          ds = new DataSource();
          ds.setDataURL("do");
          ds.setController(controller);
  
          DataSourceTextField nombre = new DataSourceTextField("nombre", 
              "Nombre", 50, true);
          DataSourceTextField codigo = new DataSourceTextField("codigo", 
              "Código", 50, true);
          DataSourceTextField id = new DataSourceTextField("id", 
              "Identificador", 50);
          id.setPrimaryKey(Boolean.TRUE);
          id.setCanEdit(Boolean.FALSE);
  
          ds.setFields(id, codigo, nombre);
  </code></pre>
  
  <p>The console result is:</p>
  
  <blockquote>
  <pre><code>    16:43:29.808:KPR3:DEBUG:gridEdit:isc_ListGrid_1:showing
  </code></pre>
    
    <p>inline editor at: 3,2, will focus:
    true
        16:43:31.385:KPR5:INFO:gridEdit:isc_ListGrid_1:cellEditEnd:
    ending editing, completion event:
    enter
        16:43:31.386:KPR5:DEBUG:gridEdit:isc_ListGrid_1:change
    detection: newValues: {codigo:
    "PRUEBA",
        nombre: "Prueba"}, oldValues: undef
        16:43:31.390:KPR5:DEBUG:gridEdit:isc_ListGrid_1:At
    field: codigo applying validators: [
        {type: "isString",
        typeCastValidator: true,
        _generated: true,
        defaultErrorMessage: "Must be a String."},
        {type: "required",
        defaultErrorMessage: undef,
        errorMessage: "Field is required"}
        ] to value:PRUEBA
        16:43:31.390:KPR5:INFO:gridEdit:isc_ListGrid_1:validateFieldValue,
    newValue: "PRUEBA", passed validation:
    true, resultingValue: null
        16:43:31.392:KPR5:DEBUG:gridEdit:isc_ListGrid_1:At
    field: nombre applying validators: [
        {type: "isString",
        typeCastValidator: true,
        _generated: true,
        defaultErrorMessage: "Must be a String."},
        {type: "required",
        defaultErrorMessage: undef,
        errorMessage: "Field is required"}
        ] to value:Prueba
        16:43:31.393:KPR5:INFO:gridEdit:isc_ListGrid_1:validateFieldValue,
    newValue: "Prueba", passed validation:
    true, resultingValue: null
        16:43:31.393:KPR5:INFO:gridEdit:isc_ListGrid_1:Saving
    newValues '{codigo: "PRUEBA",
        nombre: "Prueba"}'
        16:43:31.996:XRP3:DEBUG:ResultSet:isc_ResultSet_1
    (created by:
    isc_ListGrid_1):dataSource data
    changed firing
        16:43:31.997:XRP3:INFO:ResultSet:isc_XDataSource_3:dsResponse
    for successful operation of type add
    did not return updated record[s].
    Using submitted request data to update
    ResultSet cache.
        16:43:31.997:XRP3:DEBUG:ResultSet:isc_XDataSource_3:Submitted
    data to be integrated into the cache:[
        {codigo: "PRUEBA",
        nombre: "Prueba"}
        ]
        16:43:31.997:XRP3:INFO:ResultSet:isc_ResultSet_1
    (created by: isc_ListGrid_1):updating
    cache in place after operationType:
    add, allMatchingRowsCached true
        16:43:31.997:XRP3:INFO:ResultSet:isc_ResultSet_1
    (created by: isc_ListGrid_1):Updating
    cache: operationType 'add' submitted
    by 'isc_ListGrid_1',1 rows update
    data:
        [
        {    codigo: "PRUEBA",
        nombre: "Prueba"}
        ]
        16:43:31.998:XRP3:INFO:ResultSet:isc_ResultSet_1
    (created by: isc_ListGrid_1):Local
    filter applied: 4 of 4 records matched
    filter:{
        }
        16:43:31.999:XRP3:INFO:ResultSet:isc_XDataSource_3:dsResponse
    for successful operation of type add
    did not return updated record[s].
    Using submitted request data to update
    ResultSet cache.
        16:43:31.999:XRP3:DEBUG:ResultSet:isc_XDataSource_3:Submitted
    data to be integrated into the cache:[
        {codigo: "PRUEBA",
        nombre: "Prueba"}
        ]
        16:43:32.004:RDQ5:DEBUG:ResultSet:isc_ResultSet_1
    (created by:
    isc_ListGrid_1):getRange(0, 3)
    satisfied from cache</p>
  </blockquote>
  
  <p>Sorry I forgot to say it happens the same in insert, this is the insert log:</p>
  
  <pre><code>13:22:09.162:KPR3:DEBUG:gridEdit:isc_ListGrid_0:change detection: newValues: {codigo: "prueba",
  nombre: "prueba"}, oldValues: undef
  13:22:09.167:KPR3:DEBUG:gridEdit:isc_ListGrid_0:At field: codigo applying validators: [
  {type: "isString",
  typeCastValidator: true,
  _generated: true,
  defaultErrorMessage: "Debe ser una Cadena."},
  {type: "required",
  defaultErrorMessage: undef,
  errorMessage: "Campo es obligatorio"}
  ] to value:prueba
  13:22:09.168:KPR3:INFO:gridEdit:isc_ListGrid_0:validateFieldValue, newValue: "prueba", passed validation: true, resultingValue: null
  13:22:09.170:KPR3:DEBUG:gridEdit:isc_ListGrid_0:At field: nombre applying validators: [
  {type: "isString",
  typeCastValidator: true,
  _generated: true,
  defaultErrorMessage: "Debe ser una Cadena."},
  {type: "required",
  defaultErrorMessage: undef,
  errorMessage: "Campo es obligatorio"}
  ] to value:prueba
  13:22:09.172:KPR3:INFO:gridEdit:isc_ListGrid_0:validateFieldValue, newValue: "prueba", passed validation: true, resultingValue: null
  13:22:09.172:KPR3:INFO:gridEdit:isc_ListGrid_0:Saving newValues '{codigo: "prueba",
  nombre: "prueba"}'
  13:22:10.612:XRP7:DEBUG:ResultSet:isc_ResultSet_0 (created by: isc_ListGrid_0):dataSource data changed firing
  13:22:10.612:XRP7:INFO:ResultSet:isc_XDataSource_1:dsResponse for successful operation of type add did not return updated record[s]. Using submitted request data to update ResultSet cache.
  13:22:10.612:XRP7:DEBUG:ResultSet:isc_XDataSource_1:Submitted data to be integrated into the cache:[
  {codigo: "prueba",
  nombre: "prueba"}
  ]
  13:22:10.613:XRP7:INFO:ResultSet:isc_ResultSet_0 (created by: isc_ListGrid_0):updating cache in place after operationType: add, allMatchingRowsCached true
  13:22:10.613:XRP7:INFO:ResultSet:isc_ResultSet_0 (created by: isc_ListGrid_0):Updating cache: operationType 'add' submitted by 'isc_ListGrid_0',1 rows update data:
  [
  {codigo: "prueba",
  nombre: "prueba"}
  ]
  13:22:10.614:XRP7:INFO:ResultSet:isc_ResultSet_0 (created by: isc_ListGrid_0):Local filter applied: 3 of 3 records matched filter:{
  }
  13:22:10.615:XRP7:INFO:ResultSet:isc_XDataSource_1:dsResponse for successful operation of type add did not return updated record[s]. Using submitted request data to update ResultSet cache.
  13:22:10.615:XRP7:DEBUG:ResultSet:isc_XDataSource_1:Submitted data to be integrated into the cache:[
  {codigo: "prueba",
  nombre: "prueba"}
  ]
  13:22:10.627:RDQ9:DEBUG:ResultSet:isc_ResultSet_0 (created by: isc_ListGrid_0):getRange(0, 2) satisfied from cache
  </code></pre>
  
  <p>This is what send my server JSON as response to add new register:</p>
  
  <pre><code>input: {
      "__requestBody": {
          "dataSource": "isc_XDataSource_1",
          "operationType": "add",
          "data": {
              "nombre": "prueba",
              "codigo": "prueba"
          },
          "componentId": "isc_ListGrid_0",
          "oldValues": null
      },
      "inputfields": [
          {
              "value": "prueba",
              "property": "nombre"
          },
          {
              "value": "prueba",
              "property": "codigo"
          }
      ],
      "__requestFormat": "smartgwt",
      "__httpSession": "org.apache.catalina.session.StandardSessionFacade@1c2b15c",
      "__http_request": "org.apache.catalina.connector.RequestFacade@18d70a6",
      "fields": [
          {
              "name": "id",
              "property": "id"
          },
          {
              "name": "codigo",
              "property": "codigo"
          },
          {
              "name": "nombre",
              "property": "nombre"
          }
      ]
  }
  </code></pre>
  
  <p>And this is my response of update register:</p>
  
  <pre><code>{
      "id": "1",
      "__requestBody": {
          "dataSource": "isc_XDataSource_2",
          "operationType": "update",
          "data": {
              "nombre": "prueba2",
              "id": "1"
          },
          "componentId": "isc_ListGrid_0",
          "oldValues": {
              "id": "1",
              "codigo": "prueba",
              "nombre": "prueba"
          }
      },
      "inputfields": [
          {
              "value": "prueba2",
              "property": "nombre"
          },
          {
              "value": "1",
              "property": "id"
          }
      ],
      "__requestFormat": "smartgwt",
      "__httpSession": "org.apache.catalina.session.StandardSessionFacade@1c2b15c",
      "__http_request": "org.apache.catalina.connector.RequestFacade@1d40d08",
      "fields": [
          {
              "name": "id",
              "property": "id"
          },
          {
              "name": "codigo",
              "property": "codigo"
          },
          {
              "name": "nombre",
              "property": "nombre"
          }
      ]
  }
  </code></pre>