private void dropCache() {
        if (cache == null) {
          return;
        }

        synchronized (lock) {
          if (cache != null) {
            cache = null;
            ExtensionPoint<@NotNull T> extensionPoint = SmartExtensionPoint.this.extensionPoint;
            if (extensionPoint != null) {
              extensionPoint.removeExtensionPointListener(this);
              SmartExtensionPoint.this.extensionPoint = null;
            }
          }
        }
      }
private void dropCache()