From 96847e5cb8de65b82867606ff549c9baa806e419 Mon Sep 17 00:00:00 2001 From: Todd Baert Date: Thu, 27 Aug 2026 08:54:33 -0400 Subject: [PATCH] fix: handle long in struct conversion * fixes a miss in https://github.com/open-feature/java-sdk/pull/1985 * adds conversion to Long Signed-off-by: Todd Baert --- src/main/java/dev/openfeature/sdk/Structure.java | 2 ++ .../java/dev/openfeature/sdk/StructureTest.java | 16 ++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/src/main/java/dev/openfeature/sdk/Structure.java b/src/main/java/dev/openfeature/sdk/Structure.java index bfb744998..4a52580a8 100644 --- a/src/main/java/dev/openfeature/sdk/Structure.java +++ b/src/main/java/dev/openfeature/sdk/Structure.java @@ -80,6 +80,8 @@ default Object convertValue(Value value) { return numberValue.doubleValue(); } else if (numberValue instanceof Integer) { return numberValue.intValue(); + } else if (numberValue instanceof Long) { + return numberValue.longValue(); } } diff --git a/src/test/java/dev/openfeature/sdk/StructureTest.java b/src/test/java/dev/openfeature/sdk/StructureTest.java index 2a2406a54..e185e430b 100644 --- a/src/test/java/dev/openfeature/sdk/StructureTest.java +++ b/src/test/java/dev/openfeature/sdk/StructureTest.java @@ -116,4 +116,20 @@ void convertValueHandlesNullValue() { ImmutableStructure structure = new ImmutableStructure(); assertNull(structure.convertValue(new Value((String) null))); } + + @Test + void convertValueHandlesLongValue() { + long value = 4133980802L; // > Integer.MAX_VALUE + ImmutableStructure structure = new ImmutableStructure(); + assertEquals(value, structure.convertValue(new Value(value))); + } + + @Test + void asObjectMapHandlesLongValue() { + long value = 4133980802L; + Map map = new HashMap<>(); + map.put("long", new Value(value)); + ImmutableStructure structure = new ImmutableStructure(map); + assertEquals(value, structure.asObjectMap().get("long")); + } }