From 013abafa81c1e6888f8b33dfb56b35905b39a819 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 17:58:07 +0000 Subject: [PATCH] test: poll for connection401Error in startWithHttp401PreventsSubsequentStart test Co-Authored-By: Aaron Zeisler --- .../sdk/android/StreamingDataSourceTest.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/launchdarkly-android-client-sdk/src/test/java/com/launchdarkly/sdk/android/StreamingDataSourceTest.java b/launchdarkly-android-client-sdk/src/test/java/com/launchdarkly/sdk/android/StreamingDataSourceTest.java index c56dd394..e843118e 100644 --- a/launchdarkly-android-client-sdk/src/test/java/com/launchdarkly/sdk/android/StreamingDataSourceTest.java +++ b/launchdarkly-android-client-sdk/src/test/java/com/launchdarkly/sdk/android/StreamingDataSourceTest.java @@ -690,6 +690,18 @@ public void startWithHttp401PreventsSubsequentStart() throws Exception { assertNotNull(callback1.awaitError()); + // The background thread calls resultCallback.onError() before setting + // connection401Error, so the flag may not be true yet. Poll briefly to + // allow the background thread to complete. + long deadline = System.currentTimeMillis() + 1000; + while (System.currentTimeMillis() < deadline) { + TrackingCallback probe = new TrackingCallback(); + sds.start(probe); + if (probe.errors.poll(50, TimeUnit.MILLISECONDS) == null) { + break; // connection401Error is now set; start() was a no-op + } + } + // Second start should be a no-op due to connection401Error flag TrackingCallback callback2 = new TrackingCallback(); sds.start(callback2);