Hi, I dont think you should be removing from the list while iterating at the same time.
Create a separate list (deleteProductList) and replace the productList.remove() call with deleteProductList.add(tmpData). After you finish iterating productList iterate over deleteProductList calling the productList.remove() for each entry in there. Thanks Jon