diff --git a/application/src/main/java/run/halo/app/theme/router/ThemeCompositeRouterFunction.java b/application/src/main/java/run/halo/app/theme/router/ThemeCompositeRouterFunction.java index 1829ef89e..f1b39af50 100644 --- a/application/src/main/java/run/halo/app/theme/router/ThemeCompositeRouterFunction.java +++ b/application/src/main/java/run/halo/app/theme/router/ThemeCompositeRouterFunction.java @@ -55,9 +55,7 @@ public class ThemeCompositeRouterFunction implements RouterFunction> route(@NonNull ServerRequest request) { return Flux.fromIterable(cachedRouters) - .concatMap(routerFunction -> routerFunction.route(request) - .filterWhen(handle -> handle.handle(request).hasElement()) - ) + .concatMap(routerFunction -> routerFunction.route(request)) .next(); } diff --git a/application/src/main/java/run/halo/app/theme/router/factories/PostRouteFactory.java b/application/src/main/java/run/halo/app/theme/router/factories/PostRouteFactory.java index 4cc14ee79..54e661408 100644 --- a/application/src/main/java/run/halo/app/theme/router/factories/PostRouteFactory.java +++ b/application/src/main/java/run/halo/app/theme/router/factories/PostRouteFactory.java @@ -39,6 +39,7 @@ import run.halo.app.core.extension.content.Post; import run.halo.app.extension.MetadataUtil; import run.halo.app.extension.ReactiveExtensionClient; import run.halo.app.extension.index.query.QueryFactory; +import run.halo.app.infra.exception.NotFoundException; import run.halo.app.infra.utils.JsonUtils; import run.halo.app.theme.DefaultTemplateEnum; import run.halo.app.theme.ViewNameResolver; @@ -105,7 +106,8 @@ public class PostRouteFactory implements RouteFactory { HandlerFunction handlerFunction() { return request -> { PostPatternVariable patternVariable = PostPatternVariable.from(request); - return postResponse(request, patternVariable); + return postResponse(request, patternVariable) + .switchIfEmpty(Mono.error(() -> new NotFoundException("Post not found."))); }; }