@Override public void actionDelete() { // Get selected items. List<User> deleteItems = new ArrayList<User>(); String deletedItemsNames = ""; for (int index = 0; index < dataList.size(); index++) { if (isSelectedRow(index)) { deleteItems.add(dataList.get(index)); } } if (deleteItems.isEmpty()) { ToolSet.setErrorMessage("Select at least one item to delete."); return; } Collection<UserRole> roles; for (User deleteItem : deleteItems) { // Check if there are roles assoicated with the user, before delete // action. roles = deleteItem.getUserRoles(); if (roles.isEmpty()) { try { userDAO.remove(deleteItem); deletedItemsNames = deletedItemsNames + "(" + deleteItem.getUsername() + ");<br>"; } catch (Exception e) { ToolSet.setErrorMessage(e.getMessage() + " Cause: " + e.getCause()); e.printStackTrace(); return; } } else { String message = "Disassociate from role before delete!"; ToolSet.setErrorMessage(message); return; } } if (deletedItemsNames.length() > 0) ToolSet.setErrorMessage("Deleted entries: <br>" + deletedItemsNames); }