@NotNull
  @Override
  protected Sdk applyLocalFix() {
    ThreadingAssertions.assertEventDispatchThread();

    try {
      String actualSdkName = mySdk.getSdkName();
      if (actualSdkName == null) {
        actualSdkName = myFix.getSuggestedSdkName();
      }

      Sdk sdk = UnknownMissingSdkFix.createNewSdk(mySdk, myFix::getSuggestedSdkName);
      SdkModificator mod = sdk.getSdkModificator();
      mod.setHomePath(FileUtil.toSystemIndependentName(myFix.getExistingSdkHome()));
      mod.setVersionString(myFix.getVersionString());
      ApplicationManager.getApplication().runWriteAction(() -> {
        mod.commitChanges();
      });

      mySdk.getSdkType().setupSdkPaths(sdk);
      myFix.configureSdk(sdk);
      UnknownMissingSdkFix.registerNewSdkInJdkTable(actualSdkName, sdk);

      LOG.info("Automatically set Sdk " + mySdk + " to " + myFix.getExistingSdkHome());
      return sdk;
    } catch (Throwable t) {
      LOG.warn("Failed to configure " + mySdk.getSdkType().getPresentableName() + " " + " for " + mySdk + " for path " + myFix + ". " + t.getMessage(), t);
      throw t;
    }
  }
@NotNull
  @Override
  protected Sdk applyLocalFix()