From a324609dff9176af4b14479399fa899fa5b46ed5 Mon Sep 17 00:00:00 2001 From: Halo Dev Bot <87291978+halo-dev-bot@users.noreply.github.com> Date: Mon, 6 May 2024 16:41:02 +0800 Subject: [PATCH] [release-2.15] fix: extension resources weren't deleted as expected on initialization (#5860) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is an automated cherry-pick of #5859 /assign guqing ```release-note 修复初始化时未按预期删除自定义资源 ``` --- .../run/halo/app/infra/ExtensionResourceInitializer.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/application/src/main/java/run/halo/app/infra/ExtensionResourceInitializer.java b/application/src/main/java/run/halo/app/infra/ExtensionResourceInitializer.java index 716ef8157..74fb91c7c 100644 --- a/application/src/main/java/run/halo/app/infra/ExtensionResourceInitializer.java +++ b/application/src/main/java/run/halo/app/infra/ExtensionResourceInitializer.java @@ -15,6 +15,7 @@ import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; +import run.halo.app.extension.ExtensionUtil; import run.halo.app.extension.ReactiveExtensionClient; import run.halo.app.extension.Unstructured; import run.halo.app.infra.properties.HaloProperties; @@ -96,7 +97,13 @@ public class ExtensionResourceInitializer implements ApplicationListener extensionClient.create(extension))); + .switchIfEmpty(Mono.defer(() -> { + if (ExtensionUtil.isDeleted(extension)) { + // skip deleted extension + return Mono.empty(); + } + return extensionClient.create(extension); + })); } private List listResources(String location) {