DefaultLifecyclePhase has logic for retrying the current lifecycle phase. This all was added only to work around problems in agent startup (JmxAgent needs RmiRegistryAgent) but clutters the whole codebase. (See
MULE-3002 why this doesn't work)
Remove the retry logic and implement some kind of ordering for the Agents. This can be something simple as putting a Comparator in the registry and use that to order the objects for the current lifecycle phase before actually sending the right lifecycle methods to them.