diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/config/AbstractMessageEndpointParser.java b/org.springframework.integration/src/main/java/org/springframework/integration/config/AbstractMessageEndpointParser.java
index 9b144ebfbe..65f85f9069 100644
--- a/org.springframework.integration/src/main/java/org/springframework/integration/config/AbstractMessageEndpointParser.java
+++ b/org.springframework.integration/src/main/java/org/springframework/integration/config/AbstractMessageEndpointParser.java
@@ -54,6 +54,8 @@ public abstract class AbstractMessageEndpointParser extends AbstractSingleBeanDe
private static final String SELECTOR_ATTRIBUTE = "selector";
+ private static final String ERROR_HANDLER_ATTRIBUTE = "error-handler";
+
private static final String INTERCEPTORS_ELEMENT = "interceptors";
@@ -111,6 +113,7 @@ public abstract class AbstractMessageEndpointParser extends AbstractSingleBeanDe
IntegrationNamespaceUtils.setValueIfAttributeDefined(
builder, element, OUTPUT_CHANNEL_ATTRIBUTE, "outputChannelName");
IntegrationNamespaceUtils.setReferenceIfAttributeDefined(builder, element, SELECTOR_ATTRIBUTE);
+ IntegrationNamespaceUtils.setReferenceIfAttributeDefined(builder, element, ERROR_HANDLER_ATTRIBUTE);
String returnAddressOverridesAttribute = element.getAttribute(RETURN_ADDRESS_OVERRIDES_ATTRIBUTE);
boolean returnAddressOverrides = "true".equals(returnAddressOverridesAttribute);
builder.addPropertyValue("returnAddressOverrides", returnAddressOverrides);
diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/config/spring-integration-core-1.0.xsd b/org.springframework.integration/src/main/java/org/springframework/integration/config/spring-integration-core-1.0.xsd
index 50ef413b20..99de95dd76 100644
--- a/org.springframework.integration/src/main/java/org/springframework/integration/config/spring-integration-core-1.0.xsd
+++ b/org.springframework.integration/src/main/java/org/springframework/integration/config/spring-integration-core-1.0.xsd
@@ -213,6 +213,7 @@
+
diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/util/ErrorHandler.java b/org.springframework.integration/src/main/java/org/springframework/integration/util/ErrorHandler.java
index 36d26d402f..f24fd60f6c 100644
--- a/org.springframework.integration/src/main/java/org/springframework/integration/util/ErrorHandler.java
+++ b/org.springframework.integration/src/main/java/org/springframework/integration/util/ErrorHandler.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2007 the original author or authors.
+ * Copyright 2002-2008 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/config/EndpointParserTests.java b/org.springframework.integration/src/test/java/org/springframework/integration/config/EndpointParserTests.java
index 5dfaf6ba8a..b84dc4248a 100644
--- a/org.springframework.integration/src/test/java/org/springframework/integration/config/EndpointParserTests.java
+++ b/org.springframework.integration/src/test/java/org/springframework/integration/config/EndpointParserTests.java
@@ -104,4 +104,16 @@ public class EndpointParserTests {
endpoint.send(message);
}
+ @Test
+ public void testEndpointWithErrorHandler() {
+ ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
+ "endpointWithErrorHandler.xml", this.getClass());
+ MessageChannel channel = (MessageChannel) context.getBean("channel");
+ TestErrorHandler errorHandler = (TestErrorHandler) context.getBean("errorHandler");
+ assertNull(errorHandler.getLastError());
+ channel.send(new StringMessage("test"));
+ assertNotNull(errorHandler.getLastError());
+ assertEquals("intentional test failure", errorHandler.getLastError().getMessage());
+ }
+
}
diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/config/TestErrorHandler.java b/org.springframework.integration/src/test/java/org/springframework/integration/config/TestErrorHandler.java
index 7328c051bf..9572249841 100644
--- a/org.springframework.integration/src/test/java/org/springframework/integration/config/TestErrorHandler.java
+++ b/org.springframework.integration/src/test/java/org/springframework/integration/config/TestErrorHandler.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2007 the original author or authors.
+ * Copyright 2002-2008 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/config/endpointWithErrorHandler.xml b/org.springframework.integration/src/test/java/org/springframework/integration/config/endpointWithErrorHandler.xml
index b49e67a9f2..2ee5ff3aa6 100644
--- a/org.springframework.integration/src/test/java/org/springframework/integration/config/endpointWithErrorHandler.xml
+++ b/org.springframework.integration/src/test/java/org/springframework/integration/config/endpointWithErrorHandler.xml
@@ -6,15 +6,15 @@
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/integration
http://www.springframework.org/schema/integration/spring-integration-core-1.0.xsd">
-
+
-
+
-
+
-
+
-
+