Skip to content

Commit 564a735

Browse files
committed
fix(flagd): Fail early in syncFlags
Signed-off-by: Guido Breitenhuber <[email protected]>
1 parent a10ccbf commit 564a735

File tree

1 file changed

+10
-1
lines changed
  • providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/resolver/process/storage/connector/sync

1 file changed

+10
-1
lines changed

providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/resolver/process/storage/connector/sync/SyncStreamQueueSource.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,11 @@ private Struct getMetadata(Context.CancellableContext context) {
161161
}
162162

163163
private void syncFlags(SyncStreamObserver streamObserver) {
164+
// No need to fire a sync request if the context is already cancelled
165+
if (streamObserver.context.isCancelled()) {
166+
return;
167+
}
168+
164169
FlagSyncServiceStub localStub = stub; // don't mutate the stub
165170
if (streamDeadline > 0) {
166171
localStub = localStub.withDeadlineAfter(streamDeadline, TimeUnit.MILLISECONDS);
@@ -177,7 +182,11 @@ private void syncFlags(SyncStreamObserver streamObserver) {
177182

178183
localStub.syncFlags(syncRequest.build(), streamObserver);
179184

180-
while (!shutdown.get() && !streamObserver.context.isCancelled()) {
185+
while (!streamObserver.context.isCancelled()) {
186+
if (shutdown.get()) {
187+
streamObserver.context.cancel(null);
188+
}
189+
181190
try {
182191
Thread.sleep(500);
183192
} catch (InterruptedException e) {

0 commit comments

Comments
 (0)