From 3d533da982a3751a2180444f2cc34bbe6b3675d7 Mon Sep 17 00:00:00 2001 From: Patrick Strawderman Date: Fri, 24 Jan 2025 10:54:43 -0800 Subject: [PATCH] Use a singleton for empty raw / coerced variables Make CoercedVariables.emptyVariables() and RawVariables.emptyVariables() return an immutable singleton instance. --- src/main/java/graphql/execution/CoercedVariables.java | 3 ++- src/main/java/graphql/execution/RawVariables.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/graphql/execution/CoercedVariables.java b/src/main/java/graphql/execution/CoercedVariables.java index feeed4fb56..6123aeec82 100644 --- a/src/main/java/graphql/execution/CoercedVariables.java +++ b/src/main/java/graphql/execution/CoercedVariables.java @@ -11,6 +11,7 @@ */ @PublicApi public class CoercedVariables { + private static final CoercedVariables EMPTY = CoercedVariables.of(ImmutableKit.emptyMap()); private final ImmutableMapWithNullValues coercedVariables; public CoercedVariables(Map coercedVariables) { @@ -30,7 +31,7 @@ public Object get(String key) { } public static CoercedVariables emptyVariables() { - return new CoercedVariables(ImmutableKit.emptyMap()); + return EMPTY; } public static CoercedVariables of(Map coercedVariables) { diff --git a/src/main/java/graphql/execution/RawVariables.java b/src/main/java/graphql/execution/RawVariables.java index 02e1acabe2..d7c1fba61b 100644 --- a/src/main/java/graphql/execution/RawVariables.java +++ b/src/main/java/graphql/execution/RawVariables.java @@ -11,6 +11,7 @@ */ @PublicApi public class RawVariables { + private static final RawVariables EMPTY = RawVariables.of(ImmutableKit.emptyMap()); private final ImmutableMapWithNullValues rawVariables; public RawVariables(Map rawVariables) { @@ -30,7 +31,7 @@ public Object get(String key) { } public static RawVariables emptyVariables() { - return RawVariables.of(ImmutableKit.emptyMap()); + return EMPTY; } public static RawVariables of(Map rawVariables) {