diff --git a/src/main/java/it/cavallium/dbengine/database/LiveResourceSupport.java b/src/main/java/it/cavallium/dbengine/database/LiveResourceSupport.java index 88b1c36..cb61d33 100644 --- a/src/main/java/it/cavallium/dbengine/database/LiveResourceSupport.java +++ b/src/main/java/it/cavallium/dbengine/database/LiveResourceSupport.java @@ -19,13 +19,12 @@ public abstract class LiveResourceSupport, T extends LiveR @Override protected void finalize() throws Throwable { if (this.isAccessible()) { + var ise = new IllegalStateException("Resource not released"); + ise.setStackTrace(new StackTraceElement[0]); + logger.error("Resource not released: {}", this, attachTrace(ise)); try { this.close(); } catch (Throwable ignored) { - } finally { - var ise = new IllegalStateException("Resource not released"); - ise.setStackTrace(new StackTraceElement[0]); - logger.error("Resource not released: {}", this, attachTrace(ise)); } } super.finalize(); diff --git a/src/main/java/it/cavallium/dbengine/lucene/searcher/SimpleUnsortedUnscoredLuceneMultiSearcher.java b/src/main/java/it/cavallium/dbengine/lucene/searcher/SimpleUnsortedUnscoredLuceneMultiSearcher.java index fd88002..ad2b99c 100644 --- a/src/main/java/it/cavallium/dbengine/lucene/searcher/SimpleUnsortedUnscoredLuceneMultiSearcher.java +++ b/src/main/java/it/cavallium/dbengine/lucene/searcher/SimpleUnsortedUnscoredLuceneMultiSearcher.java @@ -24,7 +24,7 @@ public class SimpleUnsortedUnscoredLuceneMultiSearcher implements LuceneMultiSea LocalQueryParams queryParams, String keyFieldName, LLSearchTransformer transformer) { - var indexSearchersResource = Mono + var indexSearchersSendResource = Mono .fromRunnable(() -> { LLUtils.ensureBlocking(); if (queryParams.isSorted() && queryParams.limit() > 0) { @@ -36,11 +36,12 @@ public class SimpleUnsortedUnscoredLuceneMultiSearcher implements LuceneMultiSea + " by SimpleUnsortedUnscoredLuceneMultiSearcher"); } }) - .then(indexSearchersMono.map(Send::receive)); + .then(indexSearchersMono); var localQueryParams = getLocalQueryParams(queryParams); - return LLUtils.usingResource(indexSearchersResource, - indexSearchers -> Flux.fromIterable(indexSearchers.shards()) + return LLUtils.usingSendResource(indexSearchersSendResource, + indexSearchers -> Flux + .fromIterable(indexSearchers.shards()) .flatMap(searcher -> { var llSearcher = Mono.fromCallable(() -> new LLIndexSearcher(searcher, d -> {}).send()); return localSearcher.collect(llSearcher, localQueryParams, keyFieldName, transformer); @@ -69,6 +70,7 @@ public class SimpleUnsortedUnscoredLuceneMultiSearcher implements LuceneMultiSea for (LuceneSearchResult luceneSearchResult : resultsToDrop) { luceneSearchResult.close(); } + indexSearchers.close(); }).send(); }), false