code: synchronized boolean removeInterval(Interval i) {
          calcMinDuration = null;
          calcMaxDuration = null;
          calcMinFinish = null;
          calcMaxFinish = null;
          calcMinStart = null;
          calcMaxStart = null;
          shortestDistancesFromTimeZeroSource = null;
          shortestDistancesFromTimeZeroDestination = null;
  
          if (directedGraph.remove(i.getStart()) != null) {
              if (directedGraph.remove(i.getFinish()) == null) {
                  throw new IllegalStateException();
              }
              intervals.remove(i);
              return true;
          } else {
              return false;
          }
      }
docs: Remove an interval from this graph.
  
  @param i
  an interval.
  @return true if the graph changed as a result of this operation, false
  otherwise.