in services/provisioning-service/src/main/java/com/epam/datalab/backendapi/core/response/folderlistener/FolderListener.java [275:337]
private void processStatusItems() {
int i = 0;
if (itemList.size() > 0) {
expiredIdleMillis = 0;
}
itemList.processItemAll();
synchronized (itemList) {
while (i < itemList.size()) {
final WatchItem item = itemList.get(i);
final ItemStatus status = item.getStatus();
final String uuid = item.getFileHandlerCallback().getUUID();
switch (status) {
case WAIT_FOR_FILE:
case FILE_CAPTURED:
case INPROGRESS:
// Skip
i++;
continue;
case TIMEOUT_EXPIRED:
LOGGER.warn("Folder listener \"{}\" remove expired file handler for UUID {}", getDirectoryName
(), uuid);
try {
item.getFileHandlerCallback().handleError("Request timeout expired");
} catch (Exception e) {
LOGGER.error("Folder listener \"{}\" caused exception for UUID {}", getDirectoryName(),
uuid, e);
}
break;
case IS_DONE:
if (item.getFutureResult()) {
LOGGER.trace("Folder listener \"{}\" remove processed file handler for UUID {}, handler " +
"result is {}", getDirectoryName(), uuid, item.getFutureResult());
} else {
LOGGER.warn("Folder listener \"{}\" remove processed file handler for UUID {}, handler " +
"result is {}", getDirectoryName(), uuid, item.getFutureResult());
}
break;
case IS_CANCELED:
LOGGER.debug("Folder listener \"{}\" remove canceled file handler for UUID {}",
getDirectoryName(), uuid);
break;
case IS_FAILED:
LOGGER.warn("Folder listener \"{}\" remove failed file handler for UUID {}", getDirectoryName
(), uuid);
break;
case IS_INTERRUPTED:
LOGGER.debug("Folder listener \"{}\" remove iterrupted file handler for UUID {}",
getDirectoryName(), uuid);
break;
default:
continue;
}
itemList.remove(i);
}
}
if (expiredIdleMillis == 0 && itemList.size() == 0) {
expiredIdleMillis = System.currentTimeMillis() + LISTENER_IDLE_TIMEOUT_MILLLIS;
}
}