You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2012/09/30 09:24:56 UTC
svn commit: r1391956 - in /camel/branches/camel-2.10.x: ./
camel-core/src/main/java/org/apache/camel/builder/
camel-core/src/main/java/org/apache/camel/model/
camel-core/src/test/java/org/apache/camel/issues/
components/camel-spring/src/main/java/org/a...
Author: davsclaus
Date: Sun Sep 30 07:24:55 2012
New Revision: 1391956
URL: http://svn.apache.org/viewvc?rev=1391956&view=rev
Log:
CAMEL-5456: Fixed issue when using multiple RouteBuilder with Java DSL to ensure onException is scoped per RouteBuilder instances, to avoid side effects from one builder to propagate to the next. Also this ensures the initialization order of the RouteBuilder does not matter. Thanks to Andreas Jacobsen for providing test cases.
Added:
camel/branches/camel-2.10.x/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionMultipleRouteBuildersReverseTest.java
- copied unchanged from r1391954, camel/trunk/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionMultipleRouteBuildersReverseTest.java
camel/branches/camel-2.10.x/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionMultipleRouteBuildersTest.java
- copied unchanged from r1391954, camel/trunk/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionMultipleRouteBuildersTest.java
camel/branches/camel-2.10.x/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/
- copied from r1391954, camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/
camel/branches/camel-2.10.x/components/camel-spring/src/test/resources/org/apache/camel/spring/contextscan/
- copied from r1391954, camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/contextscan/
Modified:
camel/branches/camel-2.10.x/ (props changed)
camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java
camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java
camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilder.java
camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderRef.java
camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderSupport.java
camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/LoggingErrorHandlerBuilder.java
camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/NoErrorHandlerBuilder.java
camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java
camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/model/RouteDefinitionHelper.java
camel/branches/camel-2.10.x/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java
camel/branches/camel-2.10.x/components/camel-spring/src/test/java/org/apache/camel/spring/config/DummyErrorHandlerBuilder.java
Propchange: camel/branches/camel-2.10.x/
------------------------------------------------------------------------------
Merged /camel/trunk:r1391954
Propchange: camel/branches/camel-2.10.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java?rev=1391956&r1=1391955&r2=1391956&view=diff
==============================================================================
--- camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java (original)
+++ camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java Sun Sep 30 07:24:55 2012
@@ -65,6 +65,13 @@ public class DeadLetterChannelBuilder ex
return false;
}
+ @Override
+ public ErrorHandlerBuilder cloneBuilder() {
+ DeadLetterChannelBuilder answer = new DeadLetterChannelBuilder();
+ super.cloneBuilder(answer);
+ return answer;
+ }
+
// Properties
// -------------------------------------------------------------------------
Modified: camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java?rev=1391956&r1=1391955&r2=1391956&view=diff
==============================================================================
--- camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java (original)
+++ camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java Sun Sep 30 07:24:55 2012
@@ -69,6 +69,45 @@ public class DefaultErrorHandlerBuilder
return false;
}
+ @Override
+ public ErrorHandlerBuilder cloneBuilder() {
+ DefaultErrorHandlerBuilder answer = new DefaultErrorHandlerBuilder();
+ cloneBuilder(answer);
+ return answer;
+ }
+
+ protected void cloneBuilder(DefaultErrorHandlerBuilder other) {
+ super.cloneBuilder(other);
+
+ if (logger != null) {
+ other.setLogger(logger);
+ }
+ if (redeliveryPolicy != null) {
+ other.setRedeliveryPolicy(redeliveryPolicy.copy());
+ }
+ if (onRedelivery != null) {
+ other.setOnRedelivery(onRedelivery);
+ }
+ if (retryWhile != null) {
+ other.setRetryWhile(retryWhile);
+ }
+ if (retryWhileRef != null) {
+ other.setRetryWhileRef(retryWhileRef);
+ }
+ if (failureProcessor != null) {
+ other.setFailureProcessor(failureProcessor);
+ }
+ if (deadLetter != null) {
+ other.setDeadLetter(deadLetter);
+ }
+ if (deadLetterUri != null) {
+ other.setDeadLetterUri(deadLetterUri);
+ }
+ other.setUseOriginalMessage(useOriginalMessage);
+ other.setAsyncDelayedRedelivery(asyncDelayedRedelivery);
+ other.setExecutorServiceRef(executorServiceRef);
+ }
+
// Builder methods
// -------------------------------------------------------------------------
public DefaultErrorHandlerBuilder backOffMultiplier(double backOffMultiplier) {
@@ -419,7 +458,7 @@ public class DefaultErrorHandlerBuilder
throw new IllegalArgumentException("ExecutorServiceRef " + executorServiceRef + " not found in registry.");
}
} else {
- // no explicit configured thread pool, so leave it up to the error handler to deceide if it need
+ // no explicit configured thread pool, so leave it up to the error handler to decide if it need
// a default thread pool from CamelContext#getErrorHandlerExecutorService
executorService = null;
}
Modified: camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilder.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilder.java?rev=1391956&r1=1391955&r2=1391956&view=diff
==============================================================================
--- camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilder.java (original)
+++ camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilder.java Sun Sep 30 07:24:55 2012
@@ -34,21 +34,25 @@ public interface ErrorHandlerBuilder ext
/**
* Adds error handler for the given exception type
*
- * @param exception the exception to handle
+ * @param routeContext the route context
+ * @param exception the exception to handle
*/
- void addErrorHandlers(OnExceptionDefinition exception);
+ void addErrorHandlers(RouteContext routeContext, OnExceptionDefinition exception);
/**
* Adds the error handlers for the given list of exception types
*
- * @param exceptions the list of exceptions to handle
+ * @param routeContext the route context
+ * @param exceptions the list of exceptions to handle
*/
- void setErrorHandlers(List<OnExceptionDefinition> exceptions);
+ void setErrorHandlers(RouteContext routeContext, List<OnExceptionDefinition> exceptions);
/**
* Gets the error handlers
+ *
+ * @param routeContext the route context
*/
- List<OnExceptionDefinition> getErrorHandlers();
+ List<OnExceptionDefinition> getErrorHandlers(RouteContext routeContext);
/**
* Gets the exception policy strategy
@@ -75,4 +79,15 @@ public interface ErrorHandlerBuilder ext
* @param handler the other error handler
*/
void configure(RouteContext routeContext, ErrorHandler handler);
+
+ /**
+ * Clones this builder so each {@link RouteBuilder} has its private builder
+ * to use, to avoid changes from one {@link RouteBuilder} to influence the
+ * others.
+ * <p/>
+ * This is needed by the current Camel 2.x architecture.
+ *
+ * @return a clone of this {@link ErrorHandlerBuilder}
+ */
+ ErrorHandlerBuilder cloneBuilder();
}
Modified: camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderRef.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderRef.java?rev=1391956&r1=1391955&r2=1391956&view=diff
==============================================================================
--- camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderRef.java (original)
+++ camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderRef.java Sun Sep 30 07:24:55 2012
@@ -16,7 +16,9 @@
*/
package org.apache.camel.builder;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import org.apache.camel.ErrorHandlerFactory;
import org.apache.camel.Processor;
@@ -33,7 +35,7 @@ import org.apache.camel.util.ObjectHelpe
public class ErrorHandlerBuilderRef extends ErrorHandlerBuilderSupport {
public static final String DEFAULT_ERROR_HANDLER_BUILDER = "CamelDefaultErrorHandlerBuilder";
private final String ref;
- private ErrorHandlerBuilder handler;
+ private final Map<RouteContext, ErrorHandlerBuilder> handlers = new HashMap<RouteContext, ErrorHandlerBuilder>();
private boolean supportTransacted;
public ErrorHandlerBuilderRef(String ref) {
@@ -41,16 +43,19 @@ public class ErrorHandlerBuilderRef exte
}
@Override
- public void addErrorHandlers(OnExceptionDefinition exception) {
+ public void addErrorHandlers(RouteContext routeContext, OnExceptionDefinition exception) {
+ ErrorHandlerBuilder handler = handlers.get(routeContext);
if (handler != null) {
- handler.addErrorHandlers(exception);
+ handler.addErrorHandlers(routeContext, exception);
}
- super.addErrorHandlers(exception);
+ super.addErrorHandlers(routeContext, exception);
}
public Processor createErrorHandler(RouteContext routeContext, Processor processor) throws Exception {
+ ErrorHandlerBuilder handler = handlers.get(routeContext);
if (handler == null) {
handler = createErrorHandler(routeContext);
+ handlers.put(routeContext, handler);
}
return handler.createErrorHandler(routeContext, processor);
}
@@ -59,6 +64,21 @@ public class ErrorHandlerBuilderRef exte
return supportTransacted;
}
+ @Override
+ public ErrorHandlerBuilder cloneBuilder() {
+ ErrorHandlerBuilderRef answer = new ErrorHandlerBuilderRef(ref);
+ cloneBuilder(answer);
+ return answer;
+ }
+
+ protected void cloneBuilder(ErrorHandlerBuilderRef other) {
+ super.cloneBuilder(other);
+
+ // no need to copy the handlers
+
+ other.supportTransacted = supportTransacted;
+ }
+
/**
* Lookup the error handler by the given ref
*
@@ -98,7 +118,7 @@ public class ErrorHandlerBuilderRef exte
}
// inherit the error handlers from the other as they are to be shared
// this is needed by camel-spring when none error handler has been explicit configured
- ((ErrorHandlerBuilder)answer).setErrorHandlers(other.getErrorHandlers());
+ ((ErrorHandlerBuilder)answer).setErrorHandlers(routeContext, other.getErrorHandlers(routeContext));
}
} else {
// use specific configured error handler
@@ -142,20 +162,18 @@ public class ErrorHandlerBuilderRef exte
return ref;
}
- public ErrorHandlerFactory getHandler() {
- return handler;
- }
-
private ErrorHandlerBuilder createErrorHandler(RouteContext routeContext) {
- handler = (ErrorHandlerBuilder)lookupErrorHandlerBuilder(routeContext, getRef());
+ ErrorHandlerBuilder handler = (ErrorHandlerBuilder)lookupErrorHandlerBuilder(routeContext, getRef());
ObjectHelper.notNull(handler, "error handler '" + ref + "'");
// configure if the handler support transacted
supportTransacted = handler.supportTransacted();
- List<OnExceptionDefinition> list = getErrorHandlers();
- for (OnExceptionDefinition exceptionType : list) {
- handler.addErrorHandlers(exceptionType);
+ List<OnExceptionDefinition> list = getErrorHandlers(routeContext);
+ if (list != null) {
+ for (OnExceptionDefinition exceptionType : list) {
+ handler.addErrorHandlers(routeContext, exceptionType);
+ }
}
return handler;
}
Modified: camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderSupport.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderSupport.java?rev=1391956&r1=1391955&r2=1391956&view=diff
==============================================================================
--- camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderSupport.java (original)
+++ camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderSupport.java Sun Sep 30 07:24:55 2012
@@ -17,7 +17,9 @@
package org.apache.camel.builder;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import org.apache.camel.model.OnExceptionDefinition;
import org.apache.camel.processor.ErrorHandler;
@@ -32,33 +34,48 @@ import org.apache.camel.util.ObjectHelpe
* @version
*/
public abstract class ErrorHandlerBuilderSupport implements ErrorHandlerBuilder {
- private List<OnExceptionDefinition> exceptions = new ArrayList<OnExceptionDefinition>();
+ private Map<RouteContext, List<OnExceptionDefinition>> onExceptions = new HashMap<RouteContext, List<OnExceptionDefinition>>();
private ExceptionPolicyStrategy exceptionPolicyStrategy;
- public void addErrorHandlers(OnExceptionDefinition exception) {
+ public void addErrorHandlers(RouteContext routeContext, OnExceptionDefinition exception) {
// only add if we not already have it
- if (!exceptions.contains(exception)) {
- exceptions.add(exception);
+ List<OnExceptionDefinition> list = onExceptions.get(routeContext);
+ if (list == null) {
+ list = new ArrayList<OnExceptionDefinition>();
+ onExceptions.put(routeContext, list);
}
+ if (!list.contains(exception)) {
+ list.add(exception);
+ }
+ }
+
+ protected void cloneBuilder(ErrorHandlerBuilderSupport other) {
+ if (!onExceptions.isEmpty()) {
+ Map<RouteContext, List<OnExceptionDefinition>> copy = new HashMap<RouteContext, List<OnExceptionDefinition>>(onExceptions);
+ other.onExceptions = copy;
+ }
+ other.exceptionPolicyStrategy = exceptionPolicyStrategy;
}
public void configure(RouteContext routeContext, ErrorHandler handler) {
if (handler instanceof ErrorHandlerSupport) {
ErrorHandlerSupport handlerSupport = (ErrorHandlerSupport) handler;
- for (OnExceptionDefinition exception : exceptions) {
- handlerSupport.addExceptionPolicy(routeContext, exception);
+ List<OnExceptionDefinition> list = onExceptions.get(routeContext);
+ if (list != null) {
+ for (OnExceptionDefinition exception : list) {
+ handlerSupport.addExceptionPolicy(routeContext, exception);
+ }
}
}
}
- public List<OnExceptionDefinition> getErrorHandlers() {
- return exceptions;
+ public List<OnExceptionDefinition> getErrorHandlers(RouteContext routeContext) {
+ return onExceptions.get(routeContext);
}
- public void setErrorHandlers(List<OnExceptionDefinition> exceptions) {
- this.exceptions.clear();
- this.exceptions.addAll(exceptions);
+ public void setErrorHandlers(RouteContext routeContext, List<OnExceptionDefinition> exceptions) {
+ this.onExceptions.put(routeContext, exceptions);
}
/**
Modified: camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/LoggingErrorHandlerBuilder.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/LoggingErrorHandlerBuilder.java?rev=1391956&r1=1391955&r2=1391956&view=diff
==============================================================================
--- camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/LoggingErrorHandlerBuilder.java (original)
+++ camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/LoggingErrorHandlerBuilder.java Sun Sep 30 07:24:55 2012
@@ -50,6 +50,20 @@ public class LoggingErrorHandlerBuilder
return false;
}
+ @Override
+ public ErrorHandlerBuilder cloneBuilder() {
+ LoggingErrorHandlerBuilder answer = new LoggingErrorHandlerBuilder();
+ cloneBuilder(answer);
+ return answer;
+ }
+
+ protected void cloneBuilder(LoggingErrorHandlerBuilder other) {
+ super.cloneBuilder(other);
+
+ other.level = level;
+ other.log = log;
+ }
+
public Processor createErrorHandler(final RouteContext routeContext, final Processor processor) {
CamelLogger logger = new CamelLogger(log, level);
Modified: camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/NoErrorHandlerBuilder.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/NoErrorHandlerBuilder.java?rev=1391956&r1=1391955&r2=1391956&view=diff
==============================================================================
--- camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/NoErrorHandlerBuilder.java (original)
+++ camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/NoErrorHandlerBuilder.java Sun Sep 30 07:24:55 2012
@@ -37,4 +37,11 @@ public class NoErrorHandlerBuilder exten
public boolean supportTransacted() {
return false;
}
+
+ @Override
+ public ErrorHandlerBuilder cloneBuilder() {
+ NoErrorHandlerBuilder answer = new NoErrorHandlerBuilder();
+ cloneBuilder(answer);
+ return answer;
+ }
}
Modified: camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java?rev=1391956&r1=1391955&r2=1391956&view=diff
==============================================================================
--- camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java (original)
+++ camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java Sun Sep 30 07:24:55 2012
@@ -190,7 +190,7 @@ public class OnExceptionDefinition exten
// lookup the error handler builder
ErrorHandlerBuilder builder = (ErrorHandlerBuilder)routeContext.getRoute().getErrorHandlerBuilder();
// and add this as error handlers
- builder.addErrorHandlers(this);
+ builder.addErrorHandlers(routeContext, this);
}
@Override
Modified: camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/model/RouteDefinitionHelper.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/model/RouteDefinitionHelper.java?rev=1391956&r1=1391955&r2=1391956&view=diff
==============================================================================
--- camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/model/RouteDefinitionHelper.java (original)
+++ camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/model/RouteDefinitionHelper.java Sun Sep 30 07:24:55 2012
@@ -20,6 +20,7 @@ import java.util.ArrayList;
import java.util.List;
import org.apache.camel.CamelContext;
+import org.apache.camel.builder.ErrorHandlerBuilder;
import org.apache.camel.util.CamelContextHelper;
import org.apache.camel.util.EndpointHelper;
import org.apache.camel.util.ObjectHelper;
@@ -161,7 +162,13 @@ public final class RouteDefinitionHelper
if (context != null) {
// let the route inherit the error handler builder from camel context if none already set
- route.setErrorHandlerBuilderIfNull(context.getErrorHandlerBuilder());
+
+ // must clone to avoid side effects while building routes using multiple RouteBuilders
+ ErrorHandlerBuilder builder = context.getErrorHandlerBuilder();
+ if (builder != null) {
+ builder = builder.cloneBuilder();
+ route.setErrorHandlerBuilderIfNull(builder);
+ }
}
// init parent and error handler builder on the route
Modified: camel/branches/camel-2.10.x/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java?rev=1391956&r1=1391955&r2=1391956&view=diff
==============================================================================
--- camel/branches/camel-2.10.x/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java (original)
+++ camel/branches/camel-2.10.x/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java Sun Sep 30 07:24:55 2012
@@ -103,7 +103,7 @@ public class SpringTransactionPolicy imp
txBuilder.setSpringTransactionPolicy(this);
if (builder != null) {
// use error handlers from the configured builder
- txBuilder.setErrorHandlers(builder.getErrorHandlers());
+ txBuilder.setErrorHandlers(routeContext, builder.getErrorHandlers(routeContext));
}
answer = createTransactionErrorHandler(routeContext, processor, txBuilder);
answer.setExceptionPolicy(txBuilder.getExceptionPolicyStrategy());
Modified: camel/branches/camel-2.10.x/components/camel-spring/src/test/java/org/apache/camel/spring/config/DummyErrorHandlerBuilder.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/components/camel-spring/src/test/java/org/apache/camel/spring/config/DummyErrorHandlerBuilder.java?rev=1391956&r1=1391955&r2=1391956&view=diff
==============================================================================
--- camel/branches/camel-2.10.x/components/camel-spring/src/test/java/org/apache/camel/spring/config/DummyErrorHandlerBuilder.java (original)
+++ camel/branches/camel-2.10.x/components/camel-spring/src/test/java/org/apache/camel/spring/config/DummyErrorHandlerBuilder.java Sun Sep 30 07:24:55 2012
@@ -18,6 +18,7 @@ package org.apache.camel.spring.config;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
+import org.apache.camel.builder.ErrorHandlerBuilder;
import org.apache.camel.builder.ErrorHandlerBuilderSupport;
import org.apache.camel.processor.DelegateProcessor;
import org.apache.camel.spi.RouteContext;
@@ -45,6 +46,14 @@ public class DummyErrorHandlerBuilder ex
return false;
}
+ @Override
+ public ErrorHandlerBuilder cloneBuilder() {
+ DummyErrorHandlerBuilder answer = new DummyErrorHandlerBuilder();
+ super.cloneBuilder(answer);
+ answer.beanName = beanName;
+ return answer;
+ }
+
public Processor createErrorHandler(RouteContext routeContext, Processor processor) throws Exception {
return new DelegateProcessor(processor) {
@Override