Sdk () { 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()); 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; } }