From bca768a4b8307659dca07e17d9aa804e19145bb8 Mon Sep 17 00:00:00 2001 From: Andrea Cavalli Date: Sat, 23 Jul 2022 14:36:40 +0200 Subject: [PATCH] Bugfix --- .../it/cavallium/dbengine/database/LLUtils.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/it/cavallium/dbengine/database/LLUtils.java b/src/main/java/it/cavallium/dbengine/database/LLUtils.java index 435288e..dbf09d0 100644 --- a/src/main/java/it/cavallium/dbengine/database/LLUtils.java +++ b/src/main/java/it/cavallium/dbengine/database/LLUtils.java @@ -647,7 +647,12 @@ public class LLUtils { } public static Mono finalizeResource(Resource resource) { - return Mono.fromRunnable(() -> LLUtils.finalizeResourceNow(resource)); + Mono runnable = Mono.fromRunnable(() -> LLUtils.finalizeResourceNow(resource)); + if (resource instanceof LuceneCloseable) { + return runnable.transform(LuceneUtils::scheduleLucene); + } else { + return runnable; + } } public static Mono finalizeResource(SafeCloseable resource) { @@ -956,7 +961,11 @@ public class LLUtils { send.close(); } if (next instanceof SafeCloseable closeable) { if (manual || closeable instanceof DiscardingCloseable) { - closeable.close(); + if (!manual && !LuceneUtils.isLuceneThread() && closeable instanceof LuceneCloseable luceneCloseable) { + luceneScheduler().schedule(() -> luceneCloseable.close()); + } else { + closeable.close(); + } } } else if (next instanceof Resource resource && resource.isAccessible()) { resource.close();