Skip to content

Commit

Permalink
Refactory away an AtomicBoolean in ResponseReceiverCache.
Browse files Browse the repository at this point in the history
Signed-off-by: Yufei Cai <yufei.cai@bosch.io>
  • Loading branch information
yufei-cai committed Jan 31, 2022
1 parent 5bf7975 commit 00a415e
Showing 1 changed file with 7 additions and 13 deletions.
Expand Up @@ -20,7 +20,6 @@
import java.util.UUID;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CompletionStage;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.BiFunction;
import java.util.function.Function;
import java.util.function.Predicate;
Expand Down Expand Up @@ -203,26 +202,21 @@ private <S extends Signal<?>> CompletionStage<S> setUniqueCorrelationIdForGlobal
final boolean refreshCorrelationId) {

final String correlationId;
final AtomicBoolean correlationIdRefreshed = new AtomicBoolean(refreshCorrelationId);
if (refreshCorrelationId) {
final String newId = UUID.randomUUID().toString();
correlationId = SignalInformationPoint.getCorrelationId(signal)
.map(existingId -> existingId + "_" + newId)
.orElse(newId);
final var previousCorrelationId = SignalInformationPoint.getCorrelationId(signal);
final boolean correlationIdRefreshed = refreshCorrelationId || previousCorrelationId.isEmpty();
if (correlationIdRefreshed) {
correlationId = previousCorrelationId.map(existingId -> existingId + "_" + UUID.randomUUID())
.orElseGet(() -> UUID.randomUUID().toString());
} else {
correlationId = SignalInformationPoint.getCorrelationId(signal)
.orElseGet(() -> {
correlationIdRefreshed.set(true);
return UUID.randomUUID().toString();
});
correlationId = previousCorrelationId.get();
}

return get(correlationId)
.thenCompose(entry -> {
final CompletionStage<S> result;
if (entry.isPresent()) {
result = setUniqueCorrelationIdForGlobalDispatching(signal, true);
} else if (correlationIdRefreshed.get()) {
} else if (correlationIdRefreshed) {
result = CompletableFuture.completedFuture(
(S) signal.setDittoHeaders(DittoHeaders.newBuilder(signal.getDittoHeaders())
.correlationId(correlationId)
Expand Down

0 comments on commit 00a415e

Please sign in to comment.