code: void fireSynchronousEvent(EventImpl event) {
          boolean useLock = !isReentrant();
          if (useLock) {
              lock.lock();
          }
  
          try {
              fireEvent(event);
          } finally {
              if (useLock) {
                  lock.unlock();
              }
          }
      }
docs: Deliver this event to the next <code>EventHandler</code> in the queue on
  the current thread. If the handler is not reentrant, the delivery will be
  serialized to prevent multiple threads from entering the handler
  concurrently.