Skip to content

Commit 229ddcb

Browse files
feat: allowing null/missing default values (#1511)
Signed-off-by: Rahul Baradol <[email protected]> Signed-off-by: Simon Schrottner <[email protected]> Co-authored-by: Simon Schrottner <[email protected]>
1 parent 1b00628 commit 229ddcb

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/resolver/process/InProcessResolver.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,15 @@ private <T> ProviderEvaluation<T> resolve(Class<T> type, String key, EvaluationC
204204
// check variant existence
205205
Object value = flag.getVariants().get(resolvedVariant);
206206
if (value == null) {
207+
if (resolvedVariant.isEmpty() && flag.getDefaultVariant().isEmpty()) {
208+
return ProviderEvaluation.<T>builder()
209+
.reason(Reason.ERROR.toString())
210+
.errorCode(ErrorCode.FLAG_NOT_FOUND)
211+
.errorMessage("Flag '" + key + "' has no default variant defined, will use code default")
212+
.flagMetadata(getFlagMetadata(storageQueryResult))
213+
.build();
214+
}
215+
207216
String message = String.format("variant %s not found in flag with key %s", resolvedVariant, key);
208217
log.debug(message);
209218
throw new GeneralError(message);

providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/RunInProcessTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
@ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = "dev.openfeature.contrib.providers.flagd.e2e.steps")
3030
@ConfigurationParameter(key = OBJECT_FACTORY_PROPERTY_NAME, value = "io.cucumber.picocontainer.PicoFactory")
3131
@IncludeTags("in-process")
32-
@ExcludeTags({"unixsocket", "targetURI", "no-default"})
32+
@ExcludeTags({"unixsocket", "targetURI"})
3333
@Testcontainers
3434
@Isolated
3535
public class RunInProcessTest {

0 commit comments

Comments
 (0)