code: protected final boolean notifyObservers() {
          try {
              // It is not waited until the write actions are finished because the notification will be triggered after the lock release.
              if (registryLock.isWriteLockedByCurrentThread()) {
                  logger.debug("Notification of registry[" + this + "] change skipped because of running write operations!");
                  notificationSkipped = true;
                  return false;
              }
  
              if (super.notifyObservers(entryMap)) {
                  try {
                      pluginPool.afterRegistryChange();
                  } catch (CouldNotPerformException ex) {
                      MultiException.ExceptionStack exceptionStack = new MultiException.ExceptionStack();
                      exceptionStack.push(pluginPool, ex);
                      throw new MultiException("PluginPool could not execute afterRegistryChange", exceptionStack);
                  }
              }
              notificationSkipped = false;
          } catch (CouldNotPerformException ex) {
              ExceptionPrinter.printHistory(new CouldNotPerformException("Could not notify all registry observer!", ex), logger, LogLevel.ERROR);
              return false;
          }
          return true;
      }
docs: Method triggers a new registry changed notification on all observers.
  The notification will be skipped in case the registry is busy. But a final notification is always guaranteed.
  
  @return true if the notification was performed or false if the notification was skipped.