open-feature / open-feature/java-sdk

on setProvider call, shutting down the previous provider should happen before creating the new one

Aperta
#1,934 0 commenti 1 reazione 0 assegnatari Vedi su GitHub
Lingua principale
Java
Stelle
128
Fork
61
Merge medio
5h 57m
PR unite (30g)
26

Descrizione

Hi,

I noticed that if I use `setProvider` to set a provider, then later I want to replace it with another provider (in my case, I do this to supports changing the api key I use to connect to the provider without stopping my application, so I recreate the provider with the new key) the following happens in parallel:
- the shutting down of the old provider
- the initialization of the new one

For Unleash, this can be a problem as shown in those logs:
```
server-1 | {"timestamp":"2026-04-28T10:55:47.302964637Z","logger":"io.getunleash.repository.FeatureBackupHandlerFile","level":"INFO","thread":"openfeature-provider-thread-1","message":"Unleash will try to load feature toggle states from temporary backup"}
server-1 | {"timestamp":"2026-04-28T10:55:47.304799269Z","logger":"io.getunleash.repository.PollingFeatureFetcher","level":"INFO","thread":"openfeature-provider-thread-1","message":"Starting polling client"}
server-1 | {"timestamp":"2026-04-28T10:55:47.485565437Z","logger":"io.getunleash.DefaultUnleash","level":"ERROR","thread":"openfeature-provider-thread-1","message":"You already have 1 clients for AppName [my-app] with instanceId: [xxxxxxxx] running. Please double check your code where you are instantiating the Unleash SDK"}
server-1 | {"timestamp":"2026-04-28T10:55:47.485655434Z","logger":"dev.openfeature.contrib.providers.unleash.UnleashProvider","level":"INFO","thread":"openfeature-provider-thread-1","message":"finished initializing provider"}
server-1 | {"timestamp":"2026-04-28T10:55:47.485682289Z","logger":"dev.openfeature.sdk.FeatureProviderStateManager","level":"INFO","thread":"openfeature-provider-thread-1","message":"Provider Unleash transitioned from state NOT_READY to state READY"}
server-1 | {"timestamp":"2026-04-28T10:55:47.486912037Z","logger":"dev.openfeature.contrib.providers.unleash.UnleashProvider","level":"INFO","thread":"openfeature-provider-thread-2","message":"shutdown"}
server-1 |
```

As we can see the shutdown of the original client happens after the initialization of the new one and we get an ERROR message from the Unleash library.

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.