During routing there async routing engine may kick-in and depending on which components / EIPs are in use, and what options people have turned on/off, there is many combos.
In some situations the routing engine may need to block a thread to force it be synchronous at a given point.
We should add insight at runtime when these situations happens, so end users can monitor that. And also control the locks in case something bad happens. Or they are want to force "rouge" threads to terminate.
These bad situations can be caused by 3rd party developed components, the JVM running out of memory, or java.lang.Error being thrown, or 3rd party takes long time to process, or never signal a callback, or a hot redeployment of a Camel app leaked threads, or whatever.
This can cause threads in Camel to appears as stuck, and today to remedy this is to restart the JVM, or force a thread to terminate using some JVM tool.