diff --git a/spring-integration-core/src/main/java/org/springframework/integration/config/xml/PollerParser.java b/spring-integration-core/src/main/java/org/springframework/integration/config/xml/PollerParser.java index 50410b5bf8..db581de5fa 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/config/xml/PollerParser.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/config/xml/PollerParser.java @@ -120,7 +120,7 @@ public class PollerParser extends AbstractBeanDefinitionParser { } triggerBeanNames.add(triggerAttribute); } - else if (StringUtils.hasText(fixedRateAttribute)) { + if (StringUtils.hasText(fixedRateAttribute)) { BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(PERIODIC_TRIGGER_CLASSNAME); builder.addConstructorArgValue(fixedRateAttribute); if (StringUtils.hasText(timeUnit)) { @@ -131,7 +131,7 @@ public class PollerParser extends AbstractBeanDefinitionParser { builder.getBeanDefinition(), parserContext.getRegistry()); triggerBeanNames.add(triggerBeanName); } - else if (StringUtils.hasText(fixedDelayAttribute)) { + if (StringUtils.hasText(fixedDelayAttribute)) { BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(PERIODIC_TRIGGER_CLASSNAME); builder.addConstructorArgValue(fixedDelayAttribute); if (StringUtils.hasText(timeUnit)) { @@ -142,7 +142,7 @@ public class PollerParser extends AbstractBeanDefinitionParser { builder.getBeanDefinition(), parserContext.getRegistry()); triggerBeanNames.add(triggerBeanName); } - else if (StringUtils.hasText(cronAttribute)) { + if (StringUtils.hasText(cronAttribute)) { if (StringUtils.hasText(timeUnit)) { parserContext.getReaderContext().error("The 'time-unit' attribute cannot be used with a 'cron' trigger.", pollerElement); } diff --git a/spring-integration-core/src/test/java/org/springframework/integration/config/xml/PollerParserTests.java b/spring-integration-core/src/test/java/org/springframework/integration/config/xml/PollerParserTests.java index 8f3babc228..97f260a315 100644 --- a/spring-integration-core/src/test/java/org/springframework/integration/config/xml/PollerParserTests.java +++ b/spring-integration-core/src/test/java/org/springframework/integration/config/xml/PollerParserTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2009 the original author or authors. + * Copyright 2002-2011 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. @@ -118,4 +118,11 @@ public class PollerParserTests { new ClassPathXmlApplicationContext( "defaultPollerWithRef.xml", PollerParserTests.class); } + + @Test(expected=BeanDefinitionParsingException.class) + public void pollerWithCronAndFixedDelay() { + new ClassPathXmlApplicationContext( + "pollerWithCronAndFixedDelay.xml", PollerParserTests.class); + } + } diff --git a/spring-integration-core/src/test/java/org/springframework/integration/config/xml/pollerWithCronAndFixedDelay.xml b/spring-integration-core/src/test/java/org/springframework/integration/config/xml/pollerWithCronAndFixedDelay.xml new file mode 100644 index 0000000000..bf632277b9 --- /dev/null +++ b/spring-integration-core/src/test/java/org/springframework/integration/config/xml/pollerWithCronAndFixedDelay.xml @@ -0,0 +1,12 @@ + + + + + +