From 0c99a19f4a823a91ffd4790504925c7100ee1b28 Mon Sep 17 00:00:00 2001 From: Gareth Evans Date: Thu, 14 Aug 2025 14:50:58 +0100 Subject: [PATCH] fix: correctly handle merges when 'current' is null Signed-off-by: Gareth Evans --- .../ai/openai/api/OpenAiStreamFunctionCallingHelper.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/api/OpenAiStreamFunctionCallingHelper.java b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/api/OpenAiStreamFunctionCallingHelper.java index 96c43655d3f..d8fcb056f1f 100644 --- a/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/api/OpenAiStreamFunctionCallingHelper.java +++ b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/api/OpenAiStreamFunctionCallingHelper.java @@ -57,6 +57,10 @@ public ChatCompletionChunk merge(ChatCompletionChunk previous, ChatCompletionChu return current; } + if (current == null) { + return previous; + } + String id = (current.id() != null ? current.id() : previous.id()); Long created = (current.created() != null ? current.created() : previous.created()); String model = (current.model() != null ? current.model() : previous.model()); @@ -79,6 +83,10 @@ private ChunkChoice merge(ChunkChoice previous, ChunkChoice current) { return current; } + if (current == null) { + return previous; + } + ChatCompletionFinishReason finishReason = (current.finishReason() != null ? current.finishReason() : previous.finishReason()); Integer index = (current.index() != null ? current.index() : previous.index());