Skip to content

Commit 3bc4be6

Browse files
committed
Bug 35164180 - Build: topics.TopicsRecoveryTests.shouldSubscribeWithAnonymousSubscriberAfterServiceRestart
(merge ce/main -> ce/24.09 112115) [git-p4: depot-paths = "//dev/coherence-ce/release/coherence-ce-v24.09/": change = 112119]
1 parent 617aaba commit 3bc4be6

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

prj/test/functional/topics/src/main/java/topics/TopicsRecoveryTests.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@
7272
import java.util.HashSet;
7373
import java.util.Set;
7474
import java.util.concurrent.CompletableFuture;
75+
import java.util.concurrent.CountDownLatch;
7576
import java.util.concurrent.TimeUnit;
7677
import java.util.concurrent.TimeoutException;
7778
import java.util.concurrent.atomic.AtomicInteger;
@@ -328,7 +329,7 @@ public void shouldSubscribeWithAnonymousSubscriberAfterServiceRestart() throws E
328329
Eventually.assertDeferred(() -> isTopicServiceRunning(member), is(true));
329330

330331
try (Publisher<Message> publisher = topic.createPublisher();
331-
Subscriber<Message> subscriber = topic.createSubscriber())
332+
PagedTopicSubscriber<Message> subscriber = (PagedTopicSubscriber<Message>) topic.createSubscriber())
332333
{
333334
System.err.println("Publishing " + cMsgTotal + " messages of " + cbMessage + " bytes");
334335
for (int i = 0; i < cMsgTotal; i++)
@@ -361,9 +362,21 @@ public void shouldSubscribeWithAnonymousSubscriberAfterServiceRestart() throws E
361362
assertThat(element, is(notNullValue()));
362363
}
363364

365+
// A latch to catch the subscriber disconnect
366+
CountDownLatch latch = new CountDownLatch(1);
367+
subscriber.addStateListener((subscriber1, nNewState, nPrevState) ->
368+
{
369+
if (nNewState == PagedTopicSubscriber.STATE_DISCONNECTED)
370+
{
371+
latch.countDown();
372+
}
373+
});
374+
364375
restartService(topic);
365376

366-
assertThat(((PagedTopicSubscriber<Message>) subscriber).getState(), is(PagedTopicSubscriber.STATE_DISCONNECTED));
377+
// The subscriber should have disconnected at least once, it may already be reconnected
378+
// so we cannot just check its state
379+
assertThat(latch.await(5, TimeUnit.MINUTES), is(true));
367380

368381
System.err.println("Subscriber receiving remaining " + (cMsgTotal - m) + " messages of " + cbMessage + " bytes");
369382
for ( ; m < cMsgTotal; m++)

0 commit comments

Comments
 (0)