Hi everyone, we are using Camel CXF and found the following problem: It can happen that a route is trying to start for an infinite amount of time due to missing response from WSDL endpoint.
Setup: A CXF endpoint that is using an external WSDL (i.e. wsdlURL=http://someHost/test/wsdl) The WSDL endpoint that is not responding Test: I attached a sample app to this mail. To start the application, start DemoApplication.java. It will start a camel route containing a CXF endpoint. The CXF endpoint in the route tries to read an external WSDL. The endpoint for this WSDL is doing a 15 minute sleep before responding (implemented in RouteController). The conduit is configured with 100ms timeouts for connection- and readtimeout The application will fail to start if the route can not be started. Since the WSDL can't be fetched within the 100ms timeout, I would expect the app-startup to fail at least within 1 minute. However the startup seems to go on for an infinite amount of time. I did some debugging and found several requests are done for the WSDL with different timeouts (in this order): 1. org.apache.cxf.transport.http.URLConnectionHTTPConduit:134 * connectionTimeout 100 ms * readTimeout 100 ms * timeout-values are taken from conduit 1. org.apache.cxf.resource.URIResolver:282 * connectionTimeout 30 seconds * readTimeout 60 seconds * hardcoded values 1. org.springframework.core.io.AbstractFileResolvingResource:60 * connectionTimeout 0 //infinite waiting * readTimeout 0 //infinite waiting * no explicit timeouts are set Our main problem here is the last request that has no timeout configured at all. Is there any way to prevent this infinite waiting? Should I create a ticket for this problem? Thanks in advance Best regards, Manuel
<<attachment: test.zip>>