When using a route like this one (to forward an HTTP request to a downstream server) using the netty-http component, the query is decoded when sent to the downstream server:
A request to http://localhost:9000/service?q=%3B will result in a call to http://downstream:9000/service?q=; (notice the decoded ; character). Replacing the netty-http:http: endpoint with a jetty:http: endpoint fixes the problem.
The difference is in the use of the Exchange.HTTP_QUERY and Exchange.HTTP_RAW_QUERY headers. The jetty:http: endpoint is only setting the former header (containing the raw header value), while the netty-http:http: endpoint is using both headers.
When using bridgeEndpoint, the http4 component should prefer the raw query header over the decoded header if both headers are available.