Skip to content

Commit e9a298f

Browse files
committed
Special case the null client name
1 parent a1bbf38 commit e9a298f

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

src/main/java/dev/openfeature/sdk/OpenFeatureAPI.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,11 @@ public EvaluationContext getEvaluationContext() {
8484
* {@inheritDoc}
8585
*/
8686
public void setProvider(FeatureProvider provider) {
87-
setProvider(DEFAULT_PROVIDER_KEY, provider);
87+
if (provider == null) {
88+
this.providers.remove(DEFAULT_PROVIDER_KEY);
89+
} else {
90+
setProvider(DEFAULT_PROVIDER_KEY, provider);
91+
}
8892
}
8993

9094
/**
@@ -112,9 +116,11 @@ public FeatureProvider getProvider() {
112116
*/
113117
public FeatureProvider getProviderForClientOrDefault(String name) {
114118
try (AutoCloseableLock __ = providerLock.writeLockAutoCloseable()) {
115-
FeatureProvider val = this.providers.get(name);
116-
if (val != null) {
117-
return val;
119+
if (name != null) { // this happens when a client name isn't set.
120+
FeatureProvider val = this.providers.get(name);
121+
if (val != null) {
122+
return val;
123+
}
118124
}
119125
return this.providers.get(DEFAULT_PROVIDER_KEY);
120126
}

src/test/java/dev/openfeature/sdk/OpenFeatureClientTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class OpenFeatureClientTest implements HookFixtures {
2727
@DisplayName("should not throw exception if hook has different type argument than hookContext")
2828
void shouldNotThrowExceptionIfHookHasDifferentTypeArgumentThanHookContext() {
2929
OpenFeatureAPI api = mock(OpenFeatureAPI.class);
30-
when(api.getProvider()).thenReturn(new DoSomethingProvider());
30+
when(api.getProviderForClientOrDefault(any())).thenReturn(new DoSomethingProvider());
3131
when(api.getHooks()).thenReturn(Arrays.asList(mockBooleanHook(), mockStringHook()));
3232

3333
OpenFeatureClient client = new OpenFeatureClient(api, "name", "version");
@@ -57,6 +57,8 @@ void mergeContextTest() {
5757
context -> context.getTargetingKey().equals(targetingKey)))).thenReturn(ProviderEvaluation.<Boolean>builder()
5858
.value(true).build());
5959
when(api.getProvider()).thenReturn(mockProvider);
60+
when(api.getProviderForClientOrDefault(any())).thenReturn(mockProvider);
61+
6062

6163
OpenFeatureClient client = new OpenFeatureClient(api, "name", "version");
6264
client.setEvaluationContext(ctx);

0 commit comments

Comments
 (0)