From c475bf7de5a70954a92280a5827c1007b2073fa5 Mon Sep 17 00:00:00 2001 From: jasonk000 Date: Sat, 9 Aug 2025 23:58:53 -0700 Subject: [PATCH] fix: fix race in Uuids.ClockSeqAndNodeContainer double-checked init Reordered writes in ClockSeqAndNodeContainer.get() to assign `val` before setting the volatile `initialized` flag. The updated sequence ensures `val` is fully constructed and visible before publication via the volatile write. --- .../main/java/com/datastax/oss/driver/api/core/uuid/Uuids.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/core/src/main/java/com/datastax/oss/driver/api/core/uuid/Uuids.java b/core/src/main/java/com/datastax/oss/driver/api/core/uuid/Uuids.java index 8dae31f3734..5d414884500 100644 --- a/core/src/main/java/com/datastax/oss/driver/api/core/uuid/Uuids.java +++ b/core/src/main/java/com/datastax/oss/driver/api/core/uuid/Uuids.java @@ -141,9 +141,8 @@ private long get() { if (!initialized) { synchronized (ClockSeqAndNodeContainer.class) { if (!initialized) { - - initialized = true; val = makeClockSeqAndNode(); + initialized = true; } } }