private DaemonClientConnection connectToCanceledDaemon()

in client/src/main/java/org/mvndaemon/mvnd/client/DaemonConnector.java [250:279]


    private DaemonClientConnection connectToCanceledDaemon(
            Collection<DaemonInfo> busyDaemons, DaemonCompatibilitySpec constraint) {
        DaemonClientConnection connection = null;
        List<DaemonInfo> canceledBusy =
                busyDaemons.stream().filter(di -> di.getState() == Canceled).collect(Collectors.toList());
        final List<DaemonInfo> compatibleCanceledDaemons = getCompatibleDaemons(canceledBusy, constraint);
        LOGGER.debug(
                "Found {} busy daemons, {} cancelled, {} compatibles",
                busyDaemons.size(),
                canceledBusy.size(),
                compatibleCanceledDaemons.size());
        if (!compatibleCanceledDaemons.isEmpty()) {
            LOGGER.debug("Waiting for daemons with canceled builds to become available");
            long start = System.currentTimeMillis();
            long stop = start
                    + parameters
                            .property(Environment.MVND_CANCEL_CONNECT_TIMEOUT)
                            .asDuration()
                            .toMillis();
            while (connection == null && System.currentTimeMillis() < stop) {
                try {
                    sleep(200);
                    connection = connectToIdleDaemon(registry.getIdle(), constraint);
                } catch (InterruptedException e) {
                    throw new DaemonException.InterruptedException(e);
                }
            }
        }
        return connection;
    }