private long sendAndWait()

in src/main/java/org/apache/sling/distribution/journal/impl/publisher/DistributionPublisher.java [279:296]


    private long sendAndWait(PackageMessage pkg) {
        if (pkg.getReqType() == ReqType.TEST) {
            // Do not wait in case of TEST as we do not actually send it out
            sender.accept(pkg);
            return -1;
        }
        PackageQueuedNotifier queuedNotifier = pubQueueProvider.getQueuedNotifier();
        try {
            CompletableFuture<Long> received = queuedNotifier.registerWait(pkg.getPkgId());
            Event createdEvent = DistributionEvent.eventPackageCreated(pkg, pubAgentName);
            eventAdmin.postEvent(createdEvent);
            sender.accept(pkg);
            return received.get(queuedTimeout, TimeUnit.MILLISECONDS);
        } catch (Exception e) {
            queuedNotifier.unRegisterWait(pkg.getPkgId());
            throw new RuntimeException(e);
        }
    }