NettyComponent.timer is static. It is initialized/started on component startup and stopped/nulled on component shutdown. The static timer is shared between. It means that when you start two bundles using camel-netty and then stop one of it, then the remaining running bundle will not be able to create new endpoints dynamically, because of the nulled timer in the component (until some other bundle using Netty component is started and reinitalizes the timer again).
IMHO, we should not stop neither null the static timer. It can be shared between components and initialized/started when the first NettyComponent instance is created, but it should last forever. We technically could count the number of the component instances, and stops the timer when there is no NettyComponent available, but I don't see a point in this kind of micro-optimization. This is only one timer instance per application.