CachedRowSet - undoInsert()

roswell
20 de Diciembre del 2005
Que tal todos,

Estoy teniendo problemas utilizando un CachedRowSet y eliminando filas que aun no se han replicado a la base de datos. Para remover filas que no se han replicado aun utilizando acceptChanges() estoy utilizando el metodo undoInsert(), que funciona bien, excepto cuando la fila que quiero remover es la ultima del CachedRowSet. En este caso me levanta un ArrayIndexOutOfBoundsException. Les incluyo un poco de código para que se den una idea de que es lo que estoy trantado de hacer. Gracias por su ayuda,

try
{
CachedRowSetImpl crs = new CachedRowSetImpl();
//El CachedRowSet no deberia de tener filas
crs.setCommand(\\\"select * from unatabla;\\\");
crs.execute(new ConnectionManager().getConnection(\\\"myConnection\\\"));

//Insertar primera fila
crs.moveToInsertRow();
crs.updateInt(\\\"id\\\", -1);
crs.updateString(\\\"description\\\", \\\"NUEVA\\\");
crs.insertRow();
crs.moveToCurrentRow();

//Remover la primera fila,
//que es la que se inserto arriba
crs.first();
crs.undoInsert();
}
catch (SQLException sqle)
{
sqle.printStackTrace();
}