/** * @return a new list of all values (makes a copy) */ public List<V> values() { List<V> values = Lists.newArrayList(); forEach(value -> values.add(value)); return values; }
private boolean hasLocalProducers() { AtomicBoolean foundLocal = new AtomicBoolean(false); producers.forEach(producer -> { if (!producer.isRemote()) { foundLocal.set(true); } }); return foundLocal.get(); }
@Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append('{'); final AtomicBoolean first = new AtomicBoolean(true); forEach(value -> { if (!first.getAndSet(false)) { sb.append(", "); } sb.append(value.toString()); }); sb.append('}'); return sb.toString(); }
private boolean hasRemoteProducers() { AtomicBoolean foundRemote = new AtomicBoolean(false); producers.forEach(producer -> { if (producer.isRemote()) { foundRemote.set(true); } }); return foundRemote.get(); }
@Override public void run(Timeout t) throws Exception { if (isAckTimeout()) { log.warn("[{}] {} messages have timed-out", consumerBase, oldOpenSet.size()); Set<MessageIdImpl> messageIds = new HashSet<>(); oldOpenSet.forEach(messageIds::add); oldOpenSet.clear(); consumerBase.redeliverUnacknowledgedMessages(messageIds); } toggle(); timeout = client.timer().newTimeout(this, ackTimeoutMillis, TimeUnit.MILLISECONDS); } }, ackTimeoutMillis, TimeUnit.MILLISECONDS);
/** * Disconnect producers on given topic * * @param persistentTopic * The topic on which all producers should be disconnected */ private void disconnectProducers(PersistentTopic persistentTopic) { List<CompletableFuture<Void>> futures = Lists.newArrayList(); ConcurrentOpenHashSet<Producer> producers = persistentTopic.getProducers(); producers.forEach(producer -> { log.info("Producer [{}] has exceeded backlog quota on topic [{}]. Disconnecting producer", producer.getProducerName(), persistentTopic.getName()); futures.add(producer.disconnect()); }); FutureUtil.waitForAll(futures).thenRun(() -> { log.info("All producers on topic [{}] are disconnected", persistentTopic.getName()); }).exceptionally(exception -> { log.error("Error in disconnecting producers on topic [{}] [{}]", persistentTopic.getName(), exception); return null; }); } }
producers.forEach(producer -> futures.add(producer.disconnect())); subscriptions.forEach((s, sub) -> futures.add(sub.disconnect()));
@Override public CompletableFuture<Void> onPoliciesUpdate(Policies data) { producers.forEach(Producer::checkPermissions); subscriptions.forEach((subName, sub) -> sub.getConsumers().forEach(Consumer::checkPermissions)); checkMessageExpiry(); return checkReplicationAndRetryOnFailure(); }
producers.forEach(producer -> { PublisherStats publisherStats = producer.getStats(); stats.msgRateIn += publisherStats.msgRateIn;
stats.topicsCount++; topic.getProducers().forEach(producer -> { if (producer.isRemote()) { AggregatedReplicationStats replStats = stats.replicationStats
destStatsStream.startObject(topic); producers.forEach(producer -> { producer.updateRates(); PublisherStats publisherStats = producer.getStats();