From 1ac1ff3c955d1aa3812e6a1caa7b7adee1ef11dc Mon Sep 17 00:00:00 2001 From: Glavo Date: Wed, 8 Feb 2023 20:21:53 +0800 Subject: [PATCH] fix crash --- .../jackhuang/hmcl/util/versioning/VersionRange.java | 2 ++ .../hmcl/util/versioning/VersionRangeTest.java | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/versioning/VersionRange.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/versioning/VersionRange.java index 1f35d91f8..c8b628724 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/versioning/VersionRange.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/versioning/VersionRange.java @@ -66,10 +66,12 @@ public final class VersionRange { } public boolean contains(String versionNumber) { + if (versionNumber == null) return false; return contains(VersionNumber.asVersion(versionNumber)); } public boolean contains(VersionNumber versionNumber) { + if (versionNumber == null) return false; if (isEmpty()) return false; if (isAll()) return true; diff --git a/HMCLCore/src/test/java/org/jackhuang/hmcl/util/versioning/VersionRangeTest.java b/HMCLCore/src/test/java/org/jackhuang/hmcl/util/versioning/VersionRangeTest.java index 0697cb0cc..0f8ae788d 100644 --- a/HMCLCore/src/test/java/org/jackhuang/hmcl/util/versioning/VersionRangeTest.java +++ b/HMCLCore/src/test/java/org/jackhuang/hmcl/util/versioning/VersionRangeTest.java @@ -32,6 +32,17 @@ public class VersionRangeTest { assertTrue(all().contains("0")); assertTrue(all().contains("10")); + + assertFalse(all().contains((String) null)); + assertFalse(empty().contains((String) null)); + assertFalse(between("0", "10").contains((String) null)); + assertFalse(atLeast("10").contains((String) null)); + assertFalse(atMost("10").contains((String) null)); + assertFalse(all().contains((VersionNumber) null)); + assertFalse(empty().contains((VersionNumber) null)); + assertFalse(between("0", "10").contains((VersionNumber) null)); + assertFalse(atLeast("10").contains((VersionNumber) null)); + assertFalse(atMost("10").contains((VersionNumber) null)); } private static void assertIsOverlappedBy(boolean value, VersionRange range1, VersionRange range2) {