diff --git a/spring-integration-core/src/main/java/org/springframework/integration/config/ChannelParser.java b/spring-integration-core/src/main/java/org/springframework/integration/config/ChannelParser.java
index 7c84487bcc..c393e667dc 100644
--- a/spring-integration-core/src/main/java/org/springframework/integration/config/ChannelParser.java
+++ b/spring-integration-core/src/main/java/org/springframework/integration/config/ChannelParser.java
@@ -66,9 +66,6 @@ public class ChannelParser implements BeanDefinitionParser {
}
channelDef.getConstructorArgumentValues().addGenericArgumentValue(dispatcherPolicy);
String beanName = element.getAttribute(ID_ATTRIBUTE);
- if (!StringUtils.hasText(beanName)) {
- beanName = parserContext.getReaderContext().generateBeanName(channelDef);
- }
parserContext.registerBeanComponent(new BeanComponentDefinition(channelDef, beanName));
return channelDef;
}
diff --git a/spring-integration-core/src/main/java/org/springframework/integration/config/spring-integration-1.0.xsd b/spring-integration-core/src/main/java/org/springframework/integration/config/spring-integration-1.0.xsd
index e6979063b1..ba5783bd99 100644
--- a/spring-integration-core/src/main/java/org/springframework/integration/config/spring-integration-1.0.xsd
+++ b/spring-integration-core/src/main/java/org/springframework/integration/config/spring-integration-1.0.xsd
@@ -47,15 +47,12 @@
Defines a message channel.
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/spring-integration-core/src/main/java/org/springframework/integration/scheduling/MessagePublishingErrorHandler.java b/spring-integration-core/src/main/java/org/springframework/integration/scheduling/MessagePublishingErrorHandler.java
index ab54183a0a..c76387e102 100644
--- a/spring-integration-core/src/main/java/org/springframework/integration/scheduling/MessagePublishingErrorHandler.java
+++ b/spring-integration-core/src/main/java/org/springframework/integration/scheduling/MessagePublishingErrorHandler.java
@@ -53,9 +53,7 @@ public class MessagePublishingErrorHandler implements ErrorHandler {
public void handle(Throwable t) {
if (this.errorChannel != null) {
try {
- if(this.errorChannel.send(new ErrorMessage(t), this.sendTimeout)) {
- return;
- }
+ this.errorChannel.send(new ErrorMessage(t), this.sendTimeout);
}
catch (Throwable ignore) { // message will be logged only
}
diff --git a/spring-integration-core/src/test/java/org/springframework/integration/config/ChannelParserTests.java b/spring-integration-core/src/test/java/org/springframework/integration/config/ChannelParserTests.java
index 6ea86e0dcb..197f8cbc11 100644
--- a/spring-integration-core/src/test/java/org/springframework/integration/config/ChannelParserTests.java
+++ b/spring-integration-core/src/test/java/org/springframework/integration/config/ChannelParserTests.java
@@ -26,6 +26,7 @@ import java.util.concurrent.atomic.AtomicInteger;
import org.junit.Test;
+import org.springframework.beans.FatalBeanException;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.integration.channel.MessageChannel;
import org.springframework.integration.dispatcher.DefaultMessageDispatcher;
@@ -40,6 +41,11 @@ import org.springframework.integration.message.StringMessage;
*/
public class ChannelParserTests {
+ @Test(expected=FatalBeanException.class)
+ public void testChannelWithoutId() {
+ new ClassPathXmlApplicationContext("channelWithoutId.xml", this.getClass());
+ }
+
@Test
public void testChannelWithCapacity() {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
diff --git a/spring-integration-core/src/test/java/org/springframework/integration/config/channelWithoutId.xml b/spring-integration-core/src/test/java/org/springframework/integration/config/channelWithoutId.xml
new file mode 100644
index 0000000000..8214cfb79d
--- /dev/null
+++ b/spring-integration-core/src/test/java/org/springframework/integration/config/channelWithoutId.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+