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..114aee02 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,15 @@ public void startWithHttp401PreventsSubsequentStart() throws Exception { assertNotNull(callback1.awaitError()); + // The background thread calls resultCallback.onError() before setting + // connection401Error and calling dataSourceUpdateSink.shutDown(), so + // we need to wait for shutDown to complete before testing the second start. + long deadline = System.currentTimeMillis() + 1000; + while (!dataSourceUpdateSink.shutDownCalled && System.currentTimeMillis() < deadline) { + Thread.sleep(10); + } + assertTrue(dataSourceUpdateSink.shutDownCalled); + // Second start should be a no-op due to connection401Error flag TrackingCallback callback2 = new TrackingCallback(); sds.start(callback2);