diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ModUpdatesPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ModUpdatesPage.java index b0c081cf8..0d080f731 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ModUpdatesPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ModUpdatesPage.java @@ -170,7 +170,7 @@ public class ModUpdatesPage extends BorderPane implements DecoratorPage { csvTable.write(Files.newOutputStream(path)); FXUtils.showFileInExplorer(path); - }).whenComplete(exception -> { + }).whenComplete(Schedulers.javafx() ,exception -> { if (exception == null) { Controllers.dialog(path.toString(), i18n("message.success")); } else { diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/InfiniteSizeList.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/InfiniteSizeList.java index e5ef84e4e..a16f0955a 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/InfiniteSizeList.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/InfiniteSizeList.java @@ -91,11 +91,10 @@ public final class InfiniteSizeList extends ArrayList { } T previous = super.get(index); + super.set(index, element); if (previous != null) { // !null -> !null - super.set(index, element); return previous; } else { // null -> !null - super.set(index, element); if (index >= this.actualSize) { this.actualSize = index + 1; } @@ -104,8 +103,9 @@ public final class InfiniteSizeList extends ArrayList { } } + @SuppressWarnings("unchecked") private void allocate0(int index) { - super.ensureCapacity(index + 1); + this.addAll(Lang.immutableListOf((T[])new Object[index + 1 - super.size()])); } @Override