@Override public IFeedbackAction persist() throws SQLException { try { CompositeFeedbackAction cfa = new CompositeFeedbackAction(); Cursor cur = indexSelector.getCursor(); cur.beforeFirst(); Set<String> columnNames = composite.get(0).getRowPattern().keySet(); while (composite.size() > 0 && moveToNextRow(cur, columnNames)) { Iterator<ICursorCommand> it = composite.iterator(); while (it.hasNext()) { ICursorCommand comm = it.next(); if (comm.currentRowMatches(cur, this.currentRow)) { cfa.add(comm.persistCurrentRow(cur)); it.remove(); rollbackCache.add(comm); break; } } } return cfa; } catch (IOException e) { throw new UcanaccessSQLException(e); } }