Skip to content

Commit

Permalink
Log exceptions and fix maven api url
Browse files Browse the repository at this point in the history
  • Loading branch information
Matyrobbrt committed Feb 2, 2025
1 parent 18071f3 commit ec64b61
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import net.neoforged.waifu.util.Counter;
import net.neoforged.waifu.util.NeoForgeJarProvider;
import net.neoforged.waifu.util.ProgressMonitor;
import net.neoforged.waifu.util.Utils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand All @@ -21,7 +22,8 @@

public class GameVersionIndexService implements Runnable {
private static final Logger LOGGER = LoggerFactory.getLogger(GameVersionIndexService.class);
public static final ExecutorService VIRTUAL_THREAD_EXECUTOR = Executors.newVirtualThreadPerTaskExecutor();
public static final ExecutorService VIRTUAL_THREAD_EXECUTOR = Executors.newThreadPerTaskExecutor(Thread.ofVirtual()
.name("indexing-service-", 0).uncaughtExceptionHandler(Utils.LOG_EXCEPTIONS).factory());
public static final int CONCURRENCY = 100;

private volatile boolean isRunning, pendingReRun;
Expand Down Expand Up @@ -109,7 +111,8 @@ public void runWithExceptions() {

var downloadCounter = listener.startDownload();

try (var exec = Executors.newFixedThreadPool(10, Thread.ofVirtual().name("mod-downloader-" + platform.getName() + "-" + version + "-", 0).factory())) {
try (var exec = Executors.newFixedThreadPool(10, Thread.ofVirtual().name("mod-downloader-" + platform.getName() + "-" + version + "-", 0)
.uncaughtExceptionHandler(Utils.LOG_EXCEPTIONS).factory())) {
indexer.downloadAndConsiderConcurrently(files, exec, downloadCounter);
}

Expand Down
3 changes: 2 additions & 1 deletion src/main/java/net/neoforged/waifu/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import net.neoforged.waifu.platform.ModPlatform;
import net.neoforged.waifu.platform.impl.cf.CurseForgePlatform;
import net.neoforged.waifu.platform.impl.mr.ModrinthPlatform;
import net.neoforged.waifu.util.Utils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand All @@ -22,7 +23,7 @@ public class Main {
public static final Path PLATFORM_CACHE = Main.CACHE.resolve("platform");
public static final Logger LOGGER = LoggerFactory.getLogger(Main.class);
public static final ScheduledExecutorService EXECUTOR = Executors.newScheduledThreadPool(
3, Thread.ofPlatform().name("indexer-").factory()
3, Thread.ofPlatform().name("indexer-").uncaughtExceptionHandler(Utils.LOG_EXCEPTIONS).factory()
);
public static final DataSanitizer SANITIZER = DataSanitizer.of(
DataSanitizer.REMOVE_OWN_DIRECT_REFERENCES, DataSanitizer.REMOVE_PRIVATE_MEMBERS
Expand Down
3 changes: 2 additions & 1 deletion src/main/java/net/neoforged/waifu/discord/DiscordBot.java
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,8 @@ protected void execute(SlashCommandEvent event) {

var indexer = new ModIndexer<>(Main.PLATFORM_CACHE, Main.createDatabase(event.optString("version")));
var counter = new Counter<>(new AtomicInteger(), new PlatformModFile[5]);
try (var exec = Executors.newFixedThreadPool(10, Thread.ofVirtual().name("mod-downloader-manual-", 0).factory())) {
try (var exec = Executors.newFixedThreadPool(10, Thread.ofVirtual().name("mod-downloader-manual-", 0)
.uncaughtExceptionHandler(Utils.LOG_EXCEPTIONS).factory())) {
indexer.downloadAndConsiderConcurrently(files, exec, counter);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

public class NeoForgeJarProvider {
private static final URI NFRT_JAR = URI.create("https://maven.neoforged.net/releases/net/neoforged/neoform-runtime/1.0.19/neoform-runtime-1.0.19-all.jar");
private static final String LATEST_VERSION_URL = "https://maven.neoforged.net/api/maven/latest/version/releases/net%2Fneoforged%2Fneoforge?filter=%s&type=json";
private static final String LATEST_VERSION_URL = "https://maven.neoforged.net/api/maven/latest/version/releases/net/neoforged/neoforge?filter=%s&type=json";
private static final String DOWNLOAD_URL = "https://maven.neoforged.net/releases/net/neoforged/neoforge/${version}/neoforge-${version}-${type}.jar";

public static String getLatestVersion(String mcVersion) {
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/net/neoforged/waifu/util/Utils.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonDeserializer;
import net.neoforged.waifu.Main;

import java.io.IOException;
import java.io.InputStreamReader;
Expand All @@ -18,6 +19,7 @@
import java.util.zip.ZipInputStream;

public class Utils {
public static final Thread.UncaughtExceptionHandler LOG_EXCEPTIONS = (t, e) -> Main.LOGGER.error("Thread {} threw uncaught exception: ", t, e);
public static final Gson GSON = new GsonBuilder()
.registerTypeAdapter(Instant.class, (JsonDeserializer<Instant>) (json, typeOfT, context) -> Instant.parse(json.getAsString()))
.create();
Expand Down

0 comments on commit ec64b61

Please sign in to comment.