private final void itemDownloaded() {
report(getLabel(), () -> concatReportMessage("item processor for item: ",
itemId, " from parcel: ", parcelId,
" :: itemDownloaded, state ", processingState, " itemState: ", getState()),
DatagramAdapter.VerboseLevel.BASE);
if(processingState.canContinue()) {
synchronized (cache) {
cache.put(item, getResult());
}
synchronized (mutex) {
ledger.putItem(record, item, Instant.now().plus(config.getMaxDiskCacheAge()));
}
if(item instanceof Contract) {
if(((Contract)item).isLimitedForTestnet()) {
markContractTest((Contract) item);
}
}
if(!processingState.isProcessedToConsensus()) {
processingState = ItemProcessingState.DOWNLOADED;
}
if(isCheckingForce) {
checkItem();
}
downloadedEvent.fire();
}
}