Skip to content

Commit 7437192

Browse files
little-huangspring-builds
authored andcommitted
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 Signed-off-by: little_huang <[email protected]> (cherry picked from commit 1e28e30)
1 parent 2a7321f commit 7437192

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)