It looks like one of the Jmesa query string parameters is not being removed. Here is the query string as I step through the code:
Click Remove Row:
Query String >>>> uarTable_p_=1&uarTable_mr_=15&uarTable_tr_=true&uarTable_rwr_=2536
Click Save Changes:
Query String >>>> uarTable_p_=1&uarTable_mr_=15&uarTable_tr_=true&uarTable_sw_=true&uarTable_rwr_=2536
Click Remove Row:
Query String >>>> uarTable_p_=1&uarTable_mr_=15&uarTable_tr_=true&uarTable_sw_=true&uarTable_rwr_=2511
(code falls into processRows(); executes service call that tries to delete record 2536)
Click Save Changes:
Query String >>>> uarTable_p_=1&uarTable_mr_=15&uarTable_tr_=true&uarTable_sw_=true&uarTable_rwr_=2511
Click Next Page:
Query String >>>> uarTable_p_=2&uarTable_mr_=15&uarTable_tr_=true&uarTable_sw_=true&uarTable_rwr_=2511
(code falls into processRows(); executes service call that tries to delete record 2511)
The parameters "uarTable_sw_" and "uarTable_rwr_" are not being removed after the Save Changes button is clicked. So every action results in an attempt to delete the record, even though it has already been deleted.