Skip to content

Commit 6ead9c2

Browse files
committed
Merge branch 'nats-scheduling-fix' of github.com:/sonus21/rqueue into nats-scheduling-fix
2 parents 20a0ccf + 40e4e24 commit 6ead9c2

4 files changed

Lines changed: 18 additions & 19 deletions

File tree

rqueue-nats/src/main/java/com/github/sonus21/rqueue/nats/internal/NatsProvisioner.java

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,8 @@ public void ensureStream(
253253
// enqueueWithDelay after the stream was originally created by a plain enqueue call).
254254
java.util.List<String> existingSubjects = existing.getConfiguration().getSubjects();
255255
java.util.Set<String> existingSet = existingSubjects != null
256-
? new java.util.HashSet<>(existingSubjects) : new java.util.HashSet<>();
256+
? new java.util.HashSet<>(existingSubjects)
257+
: new java.util.HashSet<>();
257258
boolean needsSubjectUpdate = subjects.stream().anyMatch(s -> !existingSet.contains(s));
258259
boolean needsFlagUpdate =
259260
enableSchedules && !existing.getConfiguration().getAllowMsgSchedules();
@@ -262,19 +263,22 @@ public void ensureStream(
262263
// Merge: keep all existing subjects and append new ones (never remove).
263264
java.util.LinkedHashSet<String> merged = new java.util.LinkedHashSet<>(existingSet);
264265
merged.addAll(subjects);
265-
StreamConfiguration.Builder upd =
266-
StreamConfiguration.builder(existing.getConfiguration())
267-
.subjects(new java.util.ArrayList<>(merged));
266+
StreamConfiguration.Builder upd = StreamConfiguration.builder(
267+
existing.getConfiguration())
268+
.subjects(new java.util.ArrayList<>(merged));
268269
if (needsFlagUpdate) {
269270
upd.allowMessageSchedules(true);
270271
}
271272
jsm.updateStream(upd.build());
272273
if (needsFlagUpdate) {
273-
log.log(Level.INFO,
274-
"Stream ''{0}'' updated to enable message scheduling (ADR-51).", streamName);
274+
log.log(
275+
Level.INFO,
276+
"Stream ''{0}'' updated to enable message scheduling (ADR-51).",
277+
streamName);
275278
}
276279
if (needsSubjectUpdate) {
277-
log.log(Level.INFO,
280+
log.log(
281+
Level.INFO,
278282
"Stream ''{0}'' updated with additional subjects: {1}.",
279283
new Object[] {streamName, subjects});
280284
}

rqueue-nats/src/test/java/com/github/sonus21/rqueue/nats/JetStreamMessageBrokerSchedulingIT.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -171,10 +171,8 @@ void enqueueWithDelay_afterPlainEnqueue_streamUpgradedAndMessageHeld() throws Ex
171171
+ ")");
172172

173173
// Step 1 — plain enqueue: creates stream with only the work subject, no sched flag
174-
RqueueMessage immediate = RqueueMessage.builder()
175-
.id("imm-1")
176-
.message("immediate")
177-
.build();
174+
RqueueMessage immediate =
175+
RqueueMessage.builder().id("imm-1").message("immediate").build();
178176
broker.enqueue(q, immediate);
179177

180178
// Step 2 — delayed enqueue: must upgrade the stream (add sched wildcard + flag)

rqueue-nats/src/test/java/com/github/sonus21/rqueue/nats/internal/NatsProvisionerTest.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -323,16 +323,12 @@ void ensureStream_firstEnqueueThenDelay_addsSchedSubjectAndFlag()
323323

324324
// enqueueWithDelay() calls ensureStream with the sched wildcard and allowSchedules=true
325325
provisioner.ensureStream(
326-
"rqueue-js-orders",
327-
Arrays.asList(workSubject, schedPattern),
328-
QueueType.QUEUE,
329-
null,
330-
true);
326+
"rqueue-js-orders", Arrays.asList(workSubject, schedPattern), QueueType.QUEUE, null, true);
331327

332328
// Must call updateStream (never addStream — stream already exists)
333329
verify(jsm, never()).addStream(any());
334-
verify(jsm, times(1)).updateStream(argThat(cfg ->
335-
cfg.getAllowMsgSchedules()
330+
verify(jsm, times(1))
331+
.updateStream(argThat(cfg -> cfg.getAllowMsgSchedules()
336332
&& cfg.getSubjects().contains(workSubject)
337333
&& cfg.getSubjects().contains(schedPattern)));
338334
}

rqueue-spring-boot-starter/src/test/java/com/github/sonus21/rqueue/spring/boot/integration/NatsScheduledMessageE2EIT.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ static void wipeOwnedStreams() {
7878
* cannot race with the scheduler firing.
7979
*/
8080
static final Duration ETD_DELAY = Duration.ofSeconds(10);
81+
8182
static final Duration ETD_TOTAL_WAIT = Duration.ofSeconds(20);
8283

8384
@Autowired
@@ -204,7 +205,7 @@ static class EtdListener {
204205
void onMessage(String payload) {
205206
received.add(payload);
206207
immediateLatch.countDown(); // first call unblocks; subsequent calls are no-ops
207-
allLatch.countDown(); // each call decrements; reaches 0 when both arrive
208+
allLatch.countDown(); // each call decrements; reaches 0 when both arrive
208209
}
209210
}
210211

0 commit comments

Comments
 (0)