CAMEL-9164: Fixed WARN logging during stop camel in blueprint due error handler mbean not there.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/2b6feb62 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/2b6feb62 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/2b6feb62 Branch: refs/heads/master Commit: 2b6feb622ece62c077991953218e431a9acf7cf8 Parents: ba77a99 Author: Claus Ibsen <davscl...@apache.org> Authored: Fri Sep 25 16:26:39 2015 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Fri Sep 25 16:26:39 2015 +0200 ---------------------------------------------------------------------- .../camel/builder/ErrorHandlerBuilderRef.java | 18 +++++++++++++++++- .../DefaultManagementNamingStrategy.java | 4 ++-- 2 files changed, 19 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/2b6feb62/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderRef.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderRef.java b/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderRef.java index 769ea34..ddb1948 100644 --- a/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderRef.java +++ b/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderRef.java @@ -99,6 +99,18 @@ public class ErrorHandlerBuilderRef extends ErrorHandlerBuilderSupport { * @return the error handler */ public static ErrorHandlerFactory lookupErrorHandlerBuilder(RouteContext routeContext, String ref) { + return lookupErrorHandlerBuilder(routeContext, ref, true); + } + + /** + * Lookup the error handler by the given ref + * + * @param routeContext the route context + * @param ref reference id for the error handler + * @param mandatory whether the error handler must exists, if not a {@link org.apache.camel.NoSuchBeanException} is thrown + * @return the error handler + */ + public static ErrorHandlerFactory lookupErrorHandlerBuilder(RouteContext routeContext, String ref, boolean mandatory) { ErrorHandlerFactory answer; // if the ref is the default then we do not have any explicit error handler configured @@ -134,7 +146,11 @@ public class ErrorHandlerBuilderRef extends ErrorHandlerBuilderSupport { } } else { // use specific configured error handler - answer = routeContext.lookup(ref, ErrorHandlerBuilder.class); + if (mandatory) { + answer = routeContext.mandatoryLookup(ref, ErrorHandlerBuilder.class); + } else { + answer = routeContext.lookup(ref, ErrorHandlerBuilder.class); + } } return answer; http://git-wip-us.apache.org/repos/asf/camel/blob/2b6feb62/camel-core/src/main/java/org/apache/camel/management/DefaultManagementNamingStrategy.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementNamingStrategy.java b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementNamingStrategy.java index 07d11bd..0a03e4d 100644 --- a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementNamingStrategy.java +++ b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementNamingStrategy.java @@ -166,7 +166,7 @@ public class DefaultManagementNamingStrategy implements ManagementNamingStrategy // it has not then its an indirection and we should do some work to lookup the real builder ref = builderRef.getRef(); - ErrorHandlerFactory refBuilder = ErrorHandlerBuilderRef.lookupErrorHandlerBuilder(routeContext, builderRef.getRef()); + ErrorHandlerFactory refBuilder = ErrorHandlerBuilderRef.lookupErrorHandlerBuilder(routeContext, builderRef.getRef(), false); if (refBuilder != null) { builder = refBuilder; } @@ -178,7 +178,7 @@ public class DefaultManagementNamingStrategy implements ManagementNamingStrategy builderRef = (ErrorHandlerBuilderRef) builder; // does it refer to a non default error handler then do a 2nd lookup if (!builderRef.getRef().equals(ErrorHandlerBuilderRef.DEFAULT_ERROR_HANDLER_BUILDER)) { - refBuilder = ErrorHandlerBuilderRef.lookupErrorHandlerBuilder(routeContext, builderRef.getRef()); + refBuilder = ErrorHandlerBuilderRef.lookupErrorHandlerBuilder(routeContext, builderRef.getRef(), false); if (refBuilder != null) { ref = builderRef.getRef(); builder = refBuilder;