private static void handleDelayedSlotFill(DelayedSlotFillTask task) {
Key slotKey = task.getSlotKey();
Slot slot = querySlotOrAbandonTask(slotKey, true);
Key rootJobKey = task.getRootJobKey();
UpdateSpec updateSpec = new UpdateSpec(rootJobKey);
slot.fill(null);
updateSpec.getNonTransactionalGroup().includeSlot(slot);
backEnd.save(updateSpec, task.getQueueSettings());
// re-reading Slot (in handleSlotFilled) is needed (to capture slot fill after this one)
handleSlotFilled(new HandleSlotFilledTask(slotKey, task.getQueueSettings()));
}