Skip to content

Commit 5c2cd40

Browse files
committed
Modify @RequestParam presence handling
Fixes #50321
1 parent e368b49 commit 5c2cd40

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

extensions/spring-web/resteasy-reactive/runtime/src/main/java/io/quarkus/spring/web/resteasy/reactive/runtime/SpringRequestParamHandler.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44
import java.util.List;
55
import java.util.Map;
66

7-
import org.jboss.resteasy.reactive.common.jaxrs.ResponseImpl;
7+
import jakarta.ws.rs.WebApplicationException;
8+
import jakarta.ws.rs.core.Response;
9+
810
import org.jboss.resteasy.reactive.common.model.ResourceClass;
911
import org.jboss.resteasy.reactive.server.core.ResteasyReactiveRequestContext;
1012
import org.jboss.resteasy.reactive.server.model.HandlerChainCustomizer;
@@ -21,18 +23,19 @@ public class SpringRequestParamHandler implements HandlerChainCustomizer {
2123
@Override
2224
public List<ServerRestHandler> handlers(HandlerChainCustomizer.Phase phase, ResourceClass resourceClass,
2325
ServerResourceMethod resourceMethod) {
24-
if (phase == Phase.AFTER_RESPONSE_CREATED) {
26+
if (phase == Phase.RESOLVE_METHOD_PARAMETERS) {
2527
return Collections.singletonList(new ServerRestHandler() {
2628
@Override
2729
public void handle(ResteasyReactiveRequestContext requestContext) throws Exception {
2830
Map<String, List<String>> parametersMap = requestContext.serverRequest().getQueryParamsMap();
2931
if (parametersMap.isEmpty()) {
30-
ResponseImpl response = (ResponseImpl) requestContext.getResponse().get();
31-
response.setStatus(400);
32+
throw new WebApplicationException("Missing required param in method '" + resourceMethod.getName() + "'",
33+
Response.Status.BAD_REQUEST);
3234
}
3335
}
3436
});
3537
}
3638
return Collections.emptyList();
3739
}
40+
3841
}

0 commit comments

Comments
 (0)