Skip to content

Commit 1e28e30

Browse files
authored
Fix NPE when metadata is null in MilvusVectorStore (#4116)
Adds a null check before injecting the distance property into metadata to prevent a NullPointerException if metadata is missing from the row record. The change is intentionally minimal and does not alter existing behavior beyond avoiding the crash. Some search results do not carry metadata (or the metadata value is null). Calling JsonObject.addProperty(...) on a null reference throws an NPE and breaks the mapping pipeline. Add a null guard around the distance injection step to ensure we do not call addProperty(...) on a null metadata. Fixes #4115 Auto-cherry-pick to 1.0.x Signed-off-by: little_huang <[email protected]>
1 parent f3962a6 commit 1e28e30

File tree

1 file changed

+4
-2
lines changed
  • vector-stores/spring-ai-milvus-store/src/main/java/org/springframework/ai/vectorstore/milvus

1 file changed

+4
-2
lines changed

vector-stores/spring-ai-milvus-store/src/main/java/org/springframework/ai/vectorstore/milvus/MilvusVectorStore.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -379,8 +379,10 @@ public List<Document> doSimilaritySearch(SearchRequest request) {
379379
JsonObject metadata = new JsonObject();
380380
try {
381381
metadata = (JsonObject) rowRecord.get(this.metadataFieldName);
382-
// inject the distance into the metadata.
383-
metadata.addProperty(DocumentMetadata.DISTANCE.value(), 1 - getResultSimilarity(rowRecord));
382+
if (metadata != null) {
383+
// inject the distance into the metadata.
384+
metadata.addProperty(DocumentMetadata.DISTANCE.value(), 1 - getResultSimilarity(rowRecord));
385+
}
384386
}
385387
catch (ParamException e) {
386388
// skip the ParamException if metadata doesn't exist for the custom

0 commit comments

Comments
 (0)