Skip to content

Commit 86307be

Browse files
committed
fix: fixing the new func to check java compatibility
1 parent d2f84ca commit 86307be

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

language_tool_python/download_lt.py

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,14 +92,24 @@ def confirm_java_compatibility(language_tool_version: Optional[str] = LTP_DOWNLO
9292
universal_newlines=True)
9393

9494
major_version, minor_version = parse_java_version(output)
95+
version_date_cutoff = datetime.strptime('2025-03-27', '%Y-%m-%d')
96+
is_old_version = (
97+
language_tool_version != 'latest' and (
98+
(re.match(r'^\d+\.\d+$', language_tool_version) and language_tool_version < '6.6') or
99+
(re.match(r'^\d{8}$', language_tool_version) and datetime.strptime(language_tool_version, '%Y%m%d') < version_date_cutoff)
100+
)
101+
)
102+
95103
# Some installs of java show the version number like `14.0.1`
96104
# and others show `1.14.0.1`
97105
# (with a leading 1). We want to support both.
98106
# (See softwareengineering.stackexchange.com/questions/175075/why-is-java-version-1-x-referred-to-as-java-x)
99-
if language_tool_version != 'latest' and (language_tool_version < '6.6' or datetime.strptime(language_tool_version, '%Y%m%d') < datetime.strptime('2025-03-27', '%Y-%m-%d')) and (major_version == 1 and minor_version < 8) or (major_version < 8):
100-
raise SystemError(f'Detected java {major_version}.{minor_version}. LanguageTool requires Java >= 8 for version {language_tool_version}.')
101-
elif (major_version == 1 and minor_version < 17) or (major_version < 17):
102-
raise SystemError(f'Detected java {major_version}.{minor_version}. LanguageTool requires Java >= 17 for version {language_tool_version}.')
107+
if is_old_version:
108+
if (major_version == 1 and minor_version < 8) or (major_version != 1 and major_version < 8):
109+
raise SystemError(f'Detected java {major_version}.{minor_version}. LanguageTool requires Java >= 8 for version {language_tool_version}.')
110+
else:
111+
if (major_version == 1 and minor_version < 17) or (major_version != 1 and major_version < 17):
112+
raise SystemError(f'Detected java {major_version}.{minor_version}. LanguageTool requires Java >= 17 for version {language_tool_version}.')
103113

104114

105115
def get_common_prefix(z: zipfile.ZipFile) -> Optional[str]:

0 commit comments

Comments
 (0)