From 24c34531fdd156f455a117580541fb6d9f9d7aa8 Mon Sep 17 00:00:00 2001 From: Andreas Marek Date: Thu, 16 Oct 2025 09:28:59 +1000 Subject: [PATCH 1/3] make DataFetcherResult jspecify better --- .../graphql/execution/DataFetcherResult.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/graphql/execution/DataFetcherResult.java b/src/main/java/graphql/execution/DataFetcherResult.java index 9aecf3919b..390154e9f2 100644 --- a/src/main/java/graphql/execution/DataFetcherResult.java +++ b/src/main/java/graphql/execution/DataFetcherResult.java @@ -44,14 +44,14 @@ */ @PublicApi @NullMarked -public class DataFetcherResult { +public class DataFetcherResult { - private final @Nullable T data; + private final T data; private final List errors; private final @Nullable Object localContext; private final @Nullable Map extensions; - private DataFetcherResult(@Nullable T data, List errors, @Nullable Object localContext, @Nullable Map extensions) { + private DataFetcherResult(T data, List errors, @Nullable Object localContext, @Nullable Map extensions) { this.data = data; this.errors = ImmutableList.copyOf(assertNotNull(errors)); this.localContext = localContext; @@ -61,7 +61,7 @@ private DataFetcherResult(@Nullable T data, List errors, @Nullable /** * @return The data fetched. May be null. */ - public @Nullable T getData() { + public T getData() { return data; } @@ -175,8 +175,8 @@ public static Builder newResult() { return new Builder<>(); } - public static class Builder { - private @Nullable T data; + public static class Builder { + private T data; private @Nullable Object localContext; private final List errors = new ArrayList<>(); private @Nullable Map extensions; @@ -188,14 +188,14 @@ public Builder(DataFetcherResult existing) { extensions = existing.extensions; } - public Builder(@Nullable T data) { + public Builder(T data) { this.data = data; } public Builder() { } - public Builder data(@Nullable T data) { + public Builder data(T data) { this.data = data; return this; } From dce361d6da409da6b87fe560d8715a2caa193432 Mon Sep 17 00:00:00 2001 From: Andreas Marek Date: Thu, 16 Oct 2025 09:47:51 +1000 Subject: [PATCH 2/3] make DataFetcherResult jspecify better --- .../graphql/execution/DataFetcherResult.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main/java/graphql/execution/DataFetcherResult.java b/src/main/java/graphql/execution/DataFetcherResult.java index 390154e9f2..7e47475f1c 100644 --- a/src/main/java/graphql/execution/DataFetcherResult.java +++ b/src/main/java/graphql/execution/DataFetcherResult.java @@ -127,7 +127,7 @@ public DataFetcherResult transform(Consumer> builderConsumer) { * * @return a new instance with where the data value has been transformed */ - public DataFetcherResult map(Function<@Nullable T, @Nullable R> transformation) { + public DataFetcherResult map(Function<@Nullable T, @Nullable R> transformation) { return new Builder<>(transformation.apply(this.data)) .errors(this.errors) .extensions(this.extensions) @@ -144,9 +144,9 @@ public boolean equals(Object o) { DataFetcherResult that = (DataFetcherResult) o; return Objects.equals(data, that.data) - && errors.equals(that.errors) - && Objects.equals(localContext, that.localContext) - && Objects.equals(extensions, that.extensions); + && errors.equals(that.errors) + && Objects.equals(localContext, that.localContext) + && Objects.equals(extensions, that.extensions); } @Override @@ -157,11 +157,11 @@ public int hashCode() { @Override public String toString() { return "DataFetcherResult{" + - "data=" + data + - ", errors=" + errors + - ", localContext=" + localContext + - ", extensions=" + extensions + - '}'; + "data=" + data + + ", errors=" + errors + + ", localContext=" + localContext + + ", extensions=" + extensions + + '}'; } /** From 86419f92fff0472dffdf72f10d8870df900cd54f Mon Sep 17 00:00:00 2001 From: Andreas Marek Date: Thu, 6 Nov 2025 09:15:03 +1000 Subject: [PATCH 3/3] improve nullable annotations --- .../java/graphql/execution/DataFetcherResult.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/graphql/execution/DataFetcherResult.java b/src/main/java/graphql/execution/DataFetcherResult.java index 7e47475f1c..c7a58d84a1 100644 --- a/src/main/java/graphql/execution/DataFetcherResult.java +++ b/src/main/java/graphql/execution/DataFetcherResult.java @@ -46,12 +46,12 @@ @NullMarked public class DataFetcherResult { - private final T data; + private final @Nullable T data; private final List errors; private final @Nullable Object localContext; private final @Nullable Map extensions; - private DataFetcherResult(T data, List errors, @Nullable Object localContext, @Nullable Map extensions) { + private DataFetcherResult(@Nullable T data, List errors, @Nullable Object localContext, @Nullable Map extensions) { this.data = data; this.errors = ImmutableList.copyOf(assertNotNull(errors)); this.localContext = localContext; @@ -61,7 +61,7 @@ private DataFetcherResult(T data, List errors, @Nullable Object lo /** * @return The data fetched. May be null. */ - public T getData() { + public @Nullable T getData() { return data; } @@ -127,7 +127,7 @@ public DataFetcherResult transform(Consumer> builderConsumer) { * * @return a new instance with where the data value has been transformed */ - public DataFetcherResult map(Function<@Nullable T, @Nullable R> transformation) { + public DataFetcherResult map(Function<@Nullable T, @Nullable R> transformation) { return new Builder<>(transformation.apply(this.data)) .errors(this.errors) .extensions(this.extensions) @@ -176,7 +176,7 @@ public static Builder newResult() { } public static class Builder { - private T data; + private @Nullable T data; private @Nullable Object localContext; private final List errors = new ArrayList<>(); private @Nullable Map extensions; @@ -188,14 +188,14 @@ public Builder(DataFetcherResult existing) { extensions = existing.extensions; } - public Builder(T data) { + public Builder(@Nullable T data) { this.data = data; } public Builder() { } - public Builder data(T data) { + public Builder data(@Nullable T data) { this.data = data; return this; }