/**
  * End an event which was previously started. Once ended, log how much time the event took. It is
  * illegal to end an Event that was not started. It is good practice to endEvent in a finally
  * block. See Also startEvent.
  *
  * @param eventName - The name of the event to start
  */
 @Override
 public void endEvent(String eventName) {
   TimingInfo event = eventsBeingProfiled.get(eventName);
   /* Somebody tried to end an event that was not started. */
   if (event == null) {
     LogFactory.getLog(getClass())
         .warn("Trying to end an event which was never started: " + eventName);
     return;
   }
   event.endTiming();
   this.timingInfo.addSubMeasurement(
       eventName,
       TimingInfo.unmodifiableTimingInfo(event.getStartTimeNano(), event.getEndTimeNano()));
 }