From c465bf8c75266af5e77e368c4ddb87e2e231516d Mon Sep 17 00:00:00 2001 From: guqing <38999863+guqing@users.noreply.github.com> Date: Thu, 17 Oct 2024 16:45:30 +0800 Subject: [PATCH] fix: prevent initialization failure when theme directory already exists (#6889) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #### What type of PR is this? /kind bug /area core /milestone 2.20.x #### What this PR does / why we need it: 修复从旧版本升级到 2.20 会因为默认主题目录已经存在而无法初始化的问题 #### Which issue(s) this PR fixes: Fixes #6887 #### Does this PR introduce a user-facing change? ```release-note 修复从旧版本升级到 2.20 会因为默认主题目录已经存在而无法初始化的问题 ``` --- .../java/run/halo/app/theme/service/ThemeServiceImpl.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/application/src/main/java/run/halo/app/theme/service/ThemeServiceImpl.java b/application/src/main/java/run/halo/app/theme/service/ThemeServiceImpl.java index 37a7b142d..1b6494b70 100644 --- a/application/src/main/java/run/halo/app/theme/service/ThemeServiceImpl.java +++ b/application/src/main/java/run/halo/app/theme/service/ThemeServiceImpl.java @@ -47,6 +47,7 @@ import run.halo.app.extension.ReactiveExtensionClient; import run.halo.app.extension.Unstructured; import run.halo.app.infra.SystemVersionSupplier; import run.halo.app.infra.ThemeRootGetter; +import run.halo.app.infra.exception.ThemeAlreadyExistsException; import run.halo.app.infra.exception.ThemeUpgradeException; import run.halo.app.infra.exception.UnsatisfiedAttributeValueException; import run.halo.app.infra.properties.HaloProperties; @@ -86,6 +87,10 @@ public class ThemeServiceImpl implements ThemeService { log.warn("Failed to initialize theme from {}", location, e); return Mono.empty(); }) + .onErrorResume(ThemeAlreadyExistsException.class, e -> { + log.warn("Failed to initialize theme from {}, because it already exists", location); + return Mono.empty(); + }) .then(); }