From e0833ff74487d2ac184aad21dbb249e1daa127b1 Mon Sep 17 00:00:00 2001 From: Matthias Oesterheld <33032967+moesterheld@users.noreply.github.com> Date: Fri, 12 Dec 2025 18:01:13 +0100 Subject: [PATCH] Fix NPE when null ObjectBuilder is accessed (#1784) * adjust data types and nullables Signed-off-by: Matthias Oesterheld * prevent npe when trying to use a builder for a null object Signed-off-by: Matthias Oesterheld * add test with real life response Signed-off-by: Matthias Oesterheld * spotless Signed-off-by: Matthias Oesterheld * revert changes in generated classes Signed-off-by: Matthias Oesterheld * Update java-client/src/main/java/org/opensearch/client/json/ObjectBuilderDeserializer.java Co-authored-by: Andriy Redko Signed-off-by: Matthias Oesterheld <33032967+moesterheld@users.noreply.github.com> * Update java-client/src/main/java/org/opensearch/client/json/ObjectBuilderDeserializer.java Co-authored-by: Andriy Redko Signed-off-by: Matthias Oesterheld <33032967+moesterheld@users.noreply.github.com> * remove test Signed-off-by: Matthias Oesterheld * add changelog Signed-off-by: Matthias Oesterheld * spotless Signed-off-by: Matthias Oesterheld --------- Signed-off-by: Matthias Oesterheld Signed-off-by: Matthias Oesterheld <33032967+moesterheld@users.noreply.github.com> Co-authored-by: Andriy Redko --- CHANGELOG.md | 1 + .../org/opensearch/client/json/ObjectBuilderDeserializer.java | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9124c2e8ff..708235e32a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) - Added support for the `search_relevance` namespace ([#1748](https://github.com/opensearch-project/opensearch-java/pull/1748)) - Fix formatting of the main method to run for various samples ([#1749](https://github.com/opensearch-project/opensearch-java/pull/1749)) - Bump `com.github.jk1.dependency-license-report` from 2.9 to 3.0.1 ([#1779](https://github.com/opensearch-project/opensearch-java/pull/1779), [#1781](https://github.com/opensearch-project/opensearch-java/pull/1781)) +- Fix NPE when null ObjectBuilder is accessed ([#1717](https://github.com/opensearch-project/opensearch-java/issues/1717)) ## [Unreleased 3.x] ### Added diff --git a/java-client/src/main/java/org/opensearch/client/json/ObjectBuilderDeserializer.java b/java-client/src/main/java/org/opensearch/client/json/ObjectBuilderDeserializer.java index 4943e83eb3..9b13124751 100644 --- a/java-client/src/main/java/org/opensearch/client/json/ObjectBuilderDeserializer.java +++ b/java-client/src/main/java/org/opensearch/client/json/ObjectBuilderDeserializer.java @@ -89,12 +89,12 @@ protected JsonpDeserializer unwrap() { @Override public T deserialize(JsonParser parser, JsonpMapper mapper) { ObjectBuilder builder = builderDeserializer.deserialize(parser, mapper); - return builder.build(); + return builder != null ? builder.build() : null; } @Override public T deserialize(JsonParser parser, JsonpMapper mapper, JsonParser.Event event) { ObjectBuilder builder = builderDeserializer.deserialize(parser, mapper, event); - return builder.build(); + return builder != null ? builder.build() : null; } }