public static boolean isIncompatible(final IdeaPluginDescriptor descriptor) { try { BuildNumber buildNumber = getBuildNumber(); if (!StringUtil.isEmpty(descriptor.getSinceBuild())) { BuildNumber sinceBuild = BuildNumber.fromString(descriptor.getSinceBuild(), descriptor.getName()); if (sinceBuild.compareTo(buildNumber) > 0) { return true; } } if (!StringUtil.isEmpty(descriptor.getUntilBuild()) && !buildNumber.isSnapshot()) { BuildNumber untilBuild = BuildNumber.fromString(descriptor.getUntilBuild(), descriptor.getName()); if (untilBuild.compareTo(buildNumber) < 0) { return true; } } } catch (RuntimeException ignored) { } return false; }