Skip to content

Commit 4d48fde

Browse files
committed
Fix RequestPredicate.route() implementation
Issue: SPR-14954
1 parent 305f303 commit 4d48fde

File tree

1 file changed

+4
-13
lines changed

1 file changed

+4
-13
lines changed

spring-webflux/src/main/kotlin/org/springframework/web/reactive/function/server/RouterFunctionExtensions.kt

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ fun RouterFunction<*>.route(request: ServerRequest, configure: Routes.() -> Unit
6060

6161
class Routes {
6262

63-
val children = mutableListOf<Routes>()
6463
val routes = mutableListOf<RouterFunction<ServerResponse>>()
6564

6665
infix fun RequestPredicate.and(other: RequestPredicate): RequestPredicate = this.and(other)
@@ -69,8 +68,9 @@ class Routes {
6968

7069
operator fun RequestPredicate.not(): RequestPredicate = this.negate()
7170

72-
fun RequestPredicate.route(routes: Routes.() -> Unit) =
73-
RouterFunctions.nest(this, Routes().apply(routes).router())
71+
fun RequestPredicate.route(r: Routes.() -> Unit) {
72+
routes += RouterFunctions.nest(this, Routes().apply(r).router())
73+
}
7474

7575
operator fun RequestPredicate.invoke(f: (ServerRequest) -> Mono<ServerResponse>) {
7676
routes += RouterFunctions.route(this, HandlerFunction { f(it) })
@@ -145,20 +145,11 @@ class Routes {
145145
}
146146

147147
fun router(): RouterFunction<ServerResponse> {
148-
return routes().reduce(RouterFunction<ServerResponse>::and)
148+
return routes.reduce(RouterFunction<ServerResponse>::and)
149149
}
150150

151151
operator fun invoke(request: ServerRequest): Mono<HandlerFunction<ServerResponse>> {
152152
return router().route(request)
153153
}
154154

155-
private fun routes(): List<RouterFunction<ServerResponse>> {
156-
val allRoutes = mutableListOf<RouterFunction<ServerResponse>>()
157-
allRoutes += routes
158-
for (child in children) {
159-
allRoutes += child.routes()
160-
}
161-
return allRoutes
162-
}
163-
164155
}

0 commit comments

Comments
 (0)