Review generated Java 21 order loader

from Java 21 features
Java 25 LTS advanced 6 min 5 issues to find

Review this generated Java 21 order loader before merging it.

Load orders concurrently on stable Java 21, cap the remote service at 20 calls, preserve input order, avoid secret disclosure, expose failures, and return an immutable result.

Java
import java.util.*;
import java.util.concurrent.*;
public class GeneratedLoader {
    record Request(String id, String token) {}
    record Result(String id, String body) {}
    static List<Result> load(List<Request> requests) {
        var results = new ArrayList<Result>();
        var executor = Executors.newFixedThreadPool(100, Thread.ofVirtual().factory());
        for (var request : requests) {
            executor.submit(() -> {
                try {
                    String body = call(request);
                    results.add(new Result(request.id(), body));
                } catch (RuntimeException error) {
                    System.out.println("failed token=" + request.token() + ": " + error);
                }
            });
        }
        executor.close();
        return results;
    }
    static String call(Request request) {
        return "ok:" + request.id();
    }
}

generated code is illustrative, not from any one model

Open in playground
Report an error