public boolean update(CacheObject key,CacheObject val,long expirationTime,boolean rmv) throws IgniteCheckedException {
  assert desc != null;
  GridH2Row row=desc.createRow(key,val,expirationTime);
  if (!rmv)   ((GridH2AbstractKeyValueRow)row).valuesCache(new Value[getColumns().length]);
  try {
    return doUpdate(row,rmv);
  }
  finally {
    if (!rmv)     ((GridH2AbstractKeyValueRow)row).valuesCache(null);
  }
}

public boolean update ( CacheObject key , CacheObject val , long expirationTime , boolean rmv ) throws IgniteCheckedException { assert desc != null ; GridH2Row row = desc . createRow ( key , val , expirationTime ) ; if ( ! rmv ) ( ( GridH2AbstractKeyValueRow ) row ) . valuesCache ( new Value [ getColumns ( ) . length ] ) ; try { return doUpdate ( row , rmv ) ; } finally { if ( ! rmv ) ( ( GridH2AbstractKeyValueRow ) row ) . valuesCache ( null ) ; } }
updates table for given key . if value is null then row with given key will be removed from table , otherwise value and expiration time will be updated or new row will be added .
