public final @NotNull T getInstance(@NotNull ComponentManager componentManager, @NotNull PluginDescriptor pluginDescriptor) {
    T result = instance;
    if (result != null) {
      return result;
    }

    //noinspection SynchronizeOnThis
    synchronized (this) {
      result = instance;
      if (result != null) {
        return result;
      }

      result = createInstance(componentManager, pluginDescriptor);
      instance = result;
    }
    return result;
  }
public final @NotNull T getInstance(@NotNull ComponentManager componentManager, @NotNull PluginDescriptor pluginDescriptor)