From effc0321aae81eefdb73a2129e9b99177fed510f Mon Sep 17 00:00:00 2001 From: syaojun Date: Sat, 28 Feb 2026 23:11:41 +0800 Subject: [PATCH 1/2] fix: ensure IndexReader is properly closed in searchVectorIndex method --- .../geaflow/store/lucene/GraphVectorIndex.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/geaflow/geaflow-plugins/geaflow-store/geaflow-store-vector/src/main/java/org/apache/geaflow/store/lucene/GraphVectorIndex.java b/geaflow/geaflow-plugins/geaflow-store/geaflow-store-vector/src/main/java/org/apache/geaflow/store/lucene/GraphVectorIndex.java index ed49e667c..c3fb05719 100644 --- a/geaflow/geaflow-plugins/geaflow-store/geaflow-store-vector/src/main/java/org/apache/geaflow/store/lucene/GraphVectorIndex.java +++ b/geaflow/geaflow-plugins/geaflow-store/geaflow-store-vector/src/main/java/org/apache/geaflow/store/lucene/GraphVectorIndex.java @@ -136,9 +136,10 @@ public void addVectorIndex(boolean isVertex, K key, String fieldName, float[] ve */ @Override public K searchVectorIndex(boolean isVertex, String fieldName, float[] vector, int topK) { + IndexReader reader = null; try { // Open index reader - IndexReader reader = DirectoryReader.open(directory); + reader = DirectoryReader.open(directory); IndexSearcher searcher = new IndexSearcher(reader); // Create KNN vector query @@ -166,11 +167,17 @@ public K searchVectorIndex(boolean isVertex, String fieldName, float[] vector, i throw new IllegalArgumentException("Unsupported key type: " + keyClass.getName()); } - reader.close(); - return result; } catch (IOException e) { throw new RuntimeException("Failed to search vector index", e); + } finally { + if (reader != null) { + try { + reader.close(); + } catch (IOException e) { + throw new RuntimeException("Failed to close IndexReader", e); + } + } } } From c03960e88bbeb089f687fc9d8728fb5ac1a02917 Mon Sep 17 00:00:00 2001 From: syaojun Date: Mon, 2 Mar 2026 12:27:46 +0800 Subject: [PATCH 2/2] fix: use try-with-resources approach to avoiding exception masked --- .../geaflow/store/lucene/GraphVectorIndex.java | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/geaflow/geaflow-plugins/geaflow-store/geaflow-store-vector/src/main/java/org/apache/geaflow/store/lucene/GraphVectorIndex.java b/geaflow/geaflow-plugins/geaflow-store/geaflow-store-vector/src/main/java/org/apache/geaflow/store/lucene/GraphVectorIndex.java index c3fb05719..88934d6b4 100644 --- a/geaflow/geaflow-plugins/geaflow-store/geaflow-store-vector/src/main/java/org/apache/geaflow/store/lucene/GraphVectorIndex.java +++ b/geaflow/geaflow-plugins/geaflow-store/geaflow-store-vector/src/main/java/org/apache/geaflow/store/lucene/GraphVectorIndex.java @@ -136,10 +136,7 @@ public void addVectorIndex(boolean isVertex, K key, String fieldName, float[] ve */ @Override public K searchVectorIndex(boolean isVertex, String fieldName, float[] vector, int topK) { - IndexReader reader = null; - try { - // Open index reader - reader = DirectoryReader.open(directory); + try (IndexReader reader = DirectoryReader.open(directory)) { IndexSearcher searcher = new IndexSearcher(reader); // Create KNN vector query @@ -170,14 +167,6 @@ public K searchVectorIndex(boolean isVertex, String fieldName, float[] vector, i return result; } catch (IOException e) { throw new RuntimeException("Failed to search vector index", e); - } finally { - if (reader != null) { - try { - reader.close(); - } catch (IOException e) { - throw new RuntimeException("Failed to close IndexReader", e); - } - } } }