I'm getting this error, here is the code :
private List<Integer> getMediasToDelete() {
try (Table table = TableFileFactory.fromFile(excelFilePath, 0)) {
Iterator<TableRow> rows = table.rowsIterator();
List<String> definitiveMediaToDeleteList;
String mediaToKeep;
while (rows.hasNext()) {
TableRow row = rows.next();
definitiveMediaToDeleteList = row.getCellValueAsList("A", ",");
mediaToKeep = row.getCellValue("B", ",");
definitiveMediaToDeleteList.remove(mediaToKeep);
mediasIdsToDelete.addAll(definitiveMediaToDeleteList);
List<String> folderIdOfMedia = getService(TransactionService.class).withReadOnlyTransaction(this::getFolderId);
**for (String folderId : folderIdOfMedia) {
App.getService(FolderService.class).addMedia(Integer.parseInt(folderId), Integer.parseInt(mediaToKeep));
}**
mediaIdDominantByMediaIdToDelete.put(Integer.parseInt(mediaToKeep), definitiveMediaToDeleteList.stream().map(Integer::parseInt).collect(Collectors.toList()));
}
return mediasIdsToDelete.stream().map(Integer::parseInt).collect(Collectors.toList());
} catch (Exception e) {
REPORT.error("Error, cannot retrieve the medias ids", e);
return null;
}
}
private List<String> getFolderId() {
final String mediasQueryAsString = "SELECT folder_id" +
" FROM media_in_folder" +
" WHERE media_id in ( :mediasIdToDelete )";
final Query mediaQuery = App.getCurrentSession().createSQLQuery(mediasQueryAsString);
mediaQuery.setParameterList("mediasIdToDelete", mediasIdsToDelete);
final List<String> folderIdList = QueryHelper.list(mediaQuery);
if (CollectionUtils.isEmpty(folderIdList)) {
return Collections.emptyList();
}
return folderIdList;
}
public static List list(final Query q) {
return get().processQuery(q, () -> q.list());
}
I got the error at the bold text (the loop), I saw that a lot of questions about this error have been asked and got answered, most of the time using Integer.parseInt(string) is enough but I don't know why i'm still getting it ? How can I fix this ?
EDIT : I added the getFolderId() method