diff --git a/resources/uct/api/indexes.API_COVERAGE.idc b/resources/uct/api/indexes.API_COVERAGE.idc index c98fe32da..eb7c2eb21 100644 Binary files a/resources/uct/api/indexes.API_COVERAGE.idc and b/resources/uct/api/indexes.API_COVERAGE.idc differ diff --git a/resources/uct/deprecation/indexes.v2.4.4-beta4.DEPRECATION.idc b/resources/uct/deprecation/indexes.v2.4.4-beta4.DEPRECATION.idc new file mode 100644 index 000000000..9b81f6045 Binary files /dev/null and b/resources/uct/deprecation/indexes.v2.4.4-beta4.DEPRECATION.idc differ diff --git a/resources/uct/existence/indexes.EXISTENCE.idc b/resources/uct/existence/indexes.EXISTENCE.idc index b5d6f57fe..eadf97ebc 100644 Binary files a/resources/uct/existence/indexes.EXISTENCE.idc and b/resources/uct/existence/indexes.EXISTENCE.idc differ diff --git a/src/com/magento/idea/magento2uct/packages/SupportedVersion.java b/src/com/magento/idea/magento2uct/packages/SupportedVersion.java index fd1306987..aae7e66c2 100644 --- a/src/com/magento/idea/magento2uct/packages/SupportedVersion.java +++ b/src/com/magento/idea/magento2uct/packages/SupportedVersion.java @@ -38,8 +38,7 @@ public enum SupportedVersion { V2422("2.4.2-p2"), V243("2.4.3"), V2431("2.4.3-p1"), - V2441("2.4.4-beta1"), - V2442("2.4.4-beta2"); + V2444("2.4.4-beta4"); private final String version; diff --git a/src/com/magento/idea/magento2uct/versioning/VersionStateManager.java b/src/com/magento/idea/magento2uct/versioning/VersionStateManager.java index b94dc713e..aa89ea5ca 100644 --- a/src/com/magento/idea/magento2uct/versioning/VersionStateManager.java +++ b/src/com/magento/idea/magento2uct/versioning/VersionStateManager.java @@ -24,8 +24,8 @@ public final class VersionStateManager { private final ExistenceStateIndex existenceStateIndex; private final ApiCoverageStateIndex apiCoverageStateIndex; private final Boolean isSetIgnoreFlag; - private final SupportedVersion currentVersion; - private final SupportedVersion targetVersion; + private SupportedVersion currentVersion; + private SupportedVersion targetVersion; private final List versionsToLoad; /** @@ -48,6 +48,7 @@ public static synchronized VersionStateManager getInstance( )) { instance = new VersionStateManager(project); } + return instance; } @@ -115,6 +116,8 @@ private VersionStateManager(final @NotNull Project project) { currentVersion = settingsService.getCurrentVersionOrDefault(); targetVersion = settingsService.getTargetVersion(); versionsToLoad = new LinkedList<>(); + // Correct settings if stored data isn't valid for current supported versions state. + correctSettings(project); deprecationStateIndex = new DeprecationStateIndex(); compute(deprecationStateIndex); @@ -126,6 +129,35 @@ private VersionStateManager(final @NotNull Project project) { compute(apiCoverageStateIndex); } + /** + * Correct settings if corrupted. + * + * @param project Project + */ + @SuppressWarnings("PMD.AvoidSynchronizedAtMethodLevel") + private synchronized void correctSettings(final @NotNull Project project) { + final UctSettingsService settingsService = UctSettingsService.getInstance(project); + final List allVersions = SupportedVersion.getSupportedVersions(); + + if (currentVersion == null + || SupportedVersion.getVersion(currentVersion.getVersion()) == null) { + final SupportedVersion correctCurrentVersion = SupportedVersion.getVersion( + allVersions.get(0) + ); + settingsService.setCurrentVersion(correctCurrentVersion); + currentVersion = correctCurrentVersion; + } + + if (targetVersion == null + || SupportedVersion.getVersion(targetVersion.getVersion()) == null) { + final SupportedVersion correctTargetVersion = SupportedVersion.getVersion( + allVersions.get(allVersions.size() - 1) + ); + settingsService.setTargetVersion(correctTargetVersion); + targetVersion = correctTargetVersion; + } + } + /** * Check if current instance is valid for settings. *