From c67966707932203bdab75eaba98933fe80626cd6 Mon Sep 17 00:00:00 2001 From: huangyuhui Date: Sun, 9 Sep 2018 18:24:05 +0800 Subject: [PATCH] Fix crash when the game version is too long --- .../org/jackhuang/hmcl/util/IntVersionNumber.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/IntVersionNumber.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/IntVersionNumber.java index b1171bdde..d8b23d69a 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/IntVersionNumber.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/IntVersionNumber.java @@ -33,8 +33,17 @@ public final class IntVersionNumber extends VersionNumber { final List version; public static boolean isIntVersionNumber(String version) { - return version.chars().noneMatch(ch -> ch != '.' && (ch < '0' || ch > '9')) - && !version.contains("..") && StringUtils.isNotBlank(version); + if (version.chars().noneMatch(ch -> ch != '.' && (ch < '0' || ch > '9')) + && !version.contains("..") && StringUtils.isNotBlank(version)) { + String[] arr = version.split("\\."); + for (String str : arr) + if (str.length() > 9) + // Numbers which are larger than 1e9 cannot be stored as integer. + return false; + return true; + } else { + return false; + } } IntVersionNumber(String version) {