Just ran into this error below.
Figured out it's because of the sqare brackets, which indeed would be invalid.
The server then degrades rapidly when many succh requests are made, while the client waits forever, which seems like a bit too much of a punishment ;)
Do I have to validate incoming requests beforehand to be able to respond with an error instead?
java.lang.IllegalArgumentException: Invalid uri <some uri with square brackets [] in it>
at org.vertx.java.core.http.impl.DefaultHttpServerRequest.juri(DefaultHttpServerRequest.java:341)
at org.vertx.java.core.http.impl.DefaultHttpServerRequest.path(DefaultHttpServerRequest.java:127)
at org.vertx.java.core.http.RouteMatcher.route(RouteMatcher.java:340)
at org.vertx.java.core.http.RouteMatcher.handle(RouteMatcher.java:59)
at org.vertx.groovy.core.http.RouteMatcher$_asClosure_closure1.doCall(RouteMatcher.groovy:283)
at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:909)
at groovy.lang.Closure.call(Closure.java:411)
at groovy.lang.Closure.call(Closure.java:427)
at org.vertx.groovy.core.http.impl.DefaultHttpServer$_requestHandler_closure2.doCall(DefaultHttpServer.groovy:48)
at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:909)
at groovy.lang.Closure.call(Closure.java:411)
at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:51)
at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:81)
at com.sun.proxy.$Proxy7.handle(Unknown Source)
at org.vertx.java.core.http.impl.ServerConnection.handleRequest(ServerConnection.java:180)
at org.vertx.java.core.http.impl.ServerConnection.processMessage(ServerConnection.java:290)
at org.vertx.java.core.http.impl.ServerConnection.handleMessage(ServerConnection.java:95)
at org.vertx.java.core.http.impl.DefaultHttpServer$ServerHandler.doMessageReceived(DefaultHttpServer.java:612)
at org.vertx.java.core.http.impl.DefaultHttpServer$ServerHandler.doMessageReceived(DefaultHttpServer.java:542)
at org.vertx.java.core.http.impl.VertxHttpHandler$1.run(VertxHttpHandler.java:111)
at org.vertx.java.core.impl.DefaultContext$3.run(DefaultContext.java:171)
at org.vertx.java.core.impl.DefaultContext$3.run(DefaultContext.java:171)
at org.vertx.java.core.impl.OrderedExecutorFactory$OrderedExecutor$1.run(OrderedExecutorFactory.java:90)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)