Description
When creating the 'request-limit' filter in Undertow, there is not required to provide any of two available attributes. Although when I attach such filter to listener and perform request to server, I get following error:
ERROR [io.undertow.request] (default I/O-1) UT005071: Undertow request failed HttpServerExchange{ GET /long-running-servlet/HeavyProcessing request {Accept=[text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8], Accept-Language=[cs,en-US;q=0.8,en;q=0.6], Cache-Control=[no-cache], Accept-Encoding=[gzip, deflate, sdch], DNT=[1], Pragma=[no-cache], User-Agent=[Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36], Connection=[keep-alive], Upgrade-Insecure-Requests=[1], Host=[localhost:8080]} response {}}: java.lang.RuntimeException: WFLYUT0059: Could not construct handler for class: class io.undertow.server.handlers.RequestLimitingHandler. with parameters { "max-concurrent-requests" => undefined, "queue-size" => undefined } at org.wildfly.extension.undertow.filters.Filter.createHandler(Filter.java:111) at org.wildfly.extension.undertow.filters.Filter.createHttpHandler(Filter.java:68) at org.wildfly.extension.undertow.filters.RequestLimitHandler.createHttpHandler(RequestLimitHandler.java:37) at org.wildfly.extension.undertow.filters.FilterService.createHttpHandler(FilterService.java:57) at org.wildfly.extension.undertow.filters.FilterRef.createHttpHandler(FilterRef.java:69) at org.wildfly.extension.undertow.LocationService.configureHandlerChain(LocationService.java:96) at org.wildfly.extension.undertow.Host.configureRootHandler(Host.java:117) at org.wildfly.extension.undertow.Host.getOrCreateRootHandler(Host.java:171) at org.wildfly.extension.undertow.Host$HostRootHandler.handleRequest(Host.java:285) at io.undertow.server.handlers.NameVirtualHostHandler.handleRequest(NameVirtualHostHandler.java:54) at io.undertow.server.handlers.error.SimpleErrorPageHandler.handleRequest(SimpleErrorPageHandler.java:76) at io.undertow.server.handlers.CanonicalPathHandler.handleRequest(CanonicalPathHandler.java:49) at io.undertow.server.handlers.ChannelUpgradeHandler.handleRequest(ChannelUpgradeHandler.java:158) at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202) at io.undertow.server.protocol.http.HttpReadListener.handleEventWithNoRunningRequest(HttpReadListener.java:233) at io.undertow.server.protocol.http.HttpReadListener.handleEvent(HttpReadListener.java:131) at io.undertow.server.protocol.http.HttpOpenListener.handleEvent(HttpOpenListener.java:145) at io.undertow.server.protocol.http.HttpOpenListener.handleEvent(HttpOpenListener.java:92) at io.undertow.server.protocol.http.HttpOpenListener.handleEvent(HttpOpenListener.java:51) at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92) at org.xnio.ChannelListeners$10.handleEvent(ChannelListeners.java:291) at org.xnio.ChannelListeners$10.handleEvent(ChannelListeners.java:286) at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92) at org.xnio.nio.QueuedNioTcpServer$1.run(QueuedNioTcpServer.java:121) at org.xnio.nio.WorkerThread.safeRun(WorkerThread.java:580) at org.xnio.nio.WorkerThread.run(WorkerThread.java:464) Caused by: java.lang.IllegalArgumentException at org.jboss.dmr.ModelValue.asInt(ModelValue.java:58) at org.jboss.dmr.ModelNode.asInt(ModelNode.java:240) at org.wildfly.extension.undertow.filters.Filter.createHandler(Filter.java:94) ... 25 more
I think we should make those attributes as required when creating such filter as they are required for it's construction anyway.
Expected:
Make both attributes of request-limit filter as required when creating such filter and write operation error in case they are not provided.
NOTE: also it seems that now when I set attribute queue-size to 0 then this queue is unlimited. Maybe it would be more suitable to set behaviour like this:
- undefined -> unlimited queue
- 0 -> no queue
- 1..N -> queue size
well this would be a change of behaviour so maybe it's too late to do such change already...
Attachments
Issue Links
- is cloned by
-
WFLY-6336 request-limit should have its attributes as 'required'
- Closed
- is related to
-
JBEAP-5956 Undertow .xsd queue-size attribute definition discrepancy
- Verified