fix: prevent initialization failure when theme directory already exists (#6889)

#### 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 会因为默认主题目录已经存在而无法初始化的问题
```
pull/6891/head v2.20.4
guqing 2024-10-17 16:45:30 +08:00 committed by GitHub
parent 02def4e20a
commit c465bf8c75
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 5 additions and 0 deletions

View File

@ -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();
}