You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Roman Vottner <ro...@gmx.at> on 2014/11/05 11:15:46 UTC

StackOverflowError on configuring JettyHttpComponents with handlers for the same port

We upgraded from Camel 2.13.0 to 2.14.0 a couple of days ago and noticed some problems during the upgrade. While we managed to fix certain issues with CXF based services in Camel (extending spring configurations didn’t work for us in 2.14.0 but using @Import({…}) does achieve the same), we noticed that on having multiple routes that define „RESTful services“ via Camels JettyComponent initialization fails with a StackOverflowException.

Each route injects the component-string from a property file which is furthermore used inside the from(…) statement inside the route. In Camel 2.13.0 this was working fine (which can be seen in a github project: https://github.com/RovoMe/CamelMultipleJettyComponents) but Camel 2.14.0 (https://github.com/RovoMe/CamelMultipleJettyComponents/tree/version-upgrade) produces a StackOverflowError as mentioned earlier. If enableMultipartFilter is set to false (as parameter for the configuration-string) the error is delayed to invocation time instead of setup time.

The (updated?) documentation states "Important: You can not use different handlers with different Jetty endpoints using the same port number. The handlers is associated to the port number. If you need different handlers, then use different port numbers.„  So on removing handler=#jettyAuthHandler from all but the first route (https://github.com/RovoMe/CamelMultipleJettyComponents/tree/version-upgrade-fix) the services are working again. So is the injected jetty basic auth handler a different handler for every service? In that case, there should be a more expressive exception rather than a StackOverflowError IMO.

Kind regards,

Roman