From f43fa562d76f291239ba5e223b9220658ea8ada9 Mon Sep 17 00:00:00 2001 From: guqing <38999863+guqing@users.noreply.github.com> Date: Mon, 7 Mar 2022 17:58:13 +0800 Subject: [PATCH] fix: Content not found exception when empty sheet deleted (#1715) --- .../run/halo/app/service/assembler/BasePostAssembler.java | 8 ++++++-- .../java/run/halo/app/service/impl/PostServiceImpl.java | 1 + .../java/run/halo/app/service/impl/SheetServiceImpl.java | 1 + 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/run/halo/app/service/assembler/BasePostAssembler.java b/src/main/java/run/halo/app/service/assembler/BasePostAssembler.java index 71c7303e9..04cd146e7 100644 --- a/src/main/java/run/halo/app/service/assembler/BasePostAssembler.java +++ b/src/main/java/run/halo/app/service/assembler/BasePostAssembler.java @@ -179,8 +179,12 @@ public class BasePostAssembler { PatchedContent patchedContent = post.getContentOfNullable(); if (patchedContent == null) { - Content postContent = contentService.getById(post.getId()); - postVo.setSummary(generateSummary(postContent.getContent())); + Content postContent = contentService.getByIdOfNullable(post.getId()); + if (postContent != null) { + postVo.setSummary(generateSummary(postContent.getContent())); + } else { + postVo.setSummary(StringUtils.EMPTY); + } } else { postVo.setSummary(generateSummary(patchedContent.getContent())); } diff --git a/src/main/java/run/halo/app/service/impl/PostServiceImpl.java b/src/main/java/run/halo/app/service/impl/PostServiceImpl.java index cf4a46d2c..408269359 100644 --- a/src/main/java/run/halo/app/service/impl/PostServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/PostServiceImpl.java @@ -518,6 +518,7 @@ public class PostServiceImpl extends BasePostServiceImpl implements PostSe log.debug("Removed post content: [{}]", postContent); Post deletedPost = super.removeById(postId); + deletedPost.setContent(PatchedContent.of(postContent)); // Log it eventPublisher.publishEvent(new LogEvent(this, postId.toString(), LogType.POST_DELETED, diff --git a/src/main/java/run/halo/app/service/impl/SheetServiceImpl.java b/src/main/java/run/halo/app/service/impl/SheetServiceImpl.java index 4f5093f95..021822986 100644 --- a/src/main/java/run/halo/app/service/impl/SheetServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/SheetServiceImpl.java @@ -275,6 +275,7 @@ public class SheetServiceImpl extends BasePostServiceImpl log.debug("Removed sheet content: [{}]", sheetContent); Sheet sheet = super.removeById(id); + sheet.setContent(PatchedContent.of(sheetContent)); // Log it eventPublisher.publishEvent(