public void notifySubLWorkerTerminated(SubLWorkerEvent event) {
    //// Preconditions 
    assert event != null : "event must not be null";
    assert subLWorkerStartTimeDictionary != null : "subLWorkerStartTimeDictionary must not be null";
    
    final SubLWorker subLWorker = event.getWorker();
    final SubLWorkerStatus status = event.getStatus();
    if (status.equals(SubLWorkerStatus.FINISHED_STATUS)) {
      final Long startTime = (Long) subLWorkerStartTimeDictionary.get(subLWorker);
      if (startTime != null) {
        final long durationMillis = System.currentTimeMillis() - startTime.longValue();
        final SubLCommandInfo subLCommandInfo = new SubLCommandInfo(subLWorker.getSubLCommand(), durationMillis);
        insertSubLCommandInfo(subLCommandInfo);
        logger.fine(subLCommandInfo.durationMillisToString() + "\n\n");
      }
    }
    subLWorkerStartTimeDictionary.remove(subLWorker);
  }