code: public void sendUpdate(UpdateType updateType, Optional<String> message, Optional<String> outputFilename) {
      SingularityTaskShellCommandUpdate update = new SingularityTaskShellCommandUpdate(shellRequest.getId(), System.currentTimeMillis(), message, outputFilename, updateType);
  
      try {
        byte[] data = objectMapper.writeValueAsBytes(update);
  
        task.getLog().info("Sending update {} ({}) for shell command {}", updateType, message.or(""), shellRequest.getId());
  
        task.getDriver().sendFrameworkMessage(data);
  
      } catch (JsonProcessingException e) {
        task.getLog().error("Unable to serialize update {}", update, e);
      }
    }
docs: TODO thread?