diff --git a/spring-batch-integration/.classpath b/spring-batch-integration/.classpath
index 35c37d99e..6ceeb8b67 100644
--- a/spring-batch-integration/.classpath
+++ b/spring-batch-integration/.classpath
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/spring-batch-integration/pom.xml b/spring-batch-integration/pom.xml
index 58dc3ad96..95fc7d23d 100644
--- a/spring-batch-integration/pom.xml
+++ b/spring-batch-integration/pom.xml
@@ -54,8 +54,8 @@
javax.jms
- jms
- 1.1
+ com.springsource.javax.jms
+ 1.1.0
compile
diff --git a/spring-batch-integration/src/main/java/org/springframework/batch/integration/job/MessageOrientedStep.java b/spring-batch-integration/src/main/java/org/springframework/batch/integration/job/MessageOrientedStep.java
index 32861a2af..0aa41a53d 100644
--- a/spring-batch-integration/src/main/java/org/springframework/batch/integration/job/MessageOrientedStep.java
+++ b/spring-batch-integration/src/main/java/org/springframework/batch/integration/job/MessageOrientedStep.java
@@ -43,7 +43,9 @@ public class MessageOrientedStep extends AbstractStep {
private MessageChannel replyChannel;
- private int executionTimeoutMinutes = 30;
+ private static int MINUTE = 1000 * 60;
+
+ private long executionTimeout = 30*MINUTE ;
private long pollingInterval = 5;
@@ -52,7 +54,15 @@ public class MessageOrientedStep extends AbstractStep {
* @param executionTimeoutMinutes the timeout to set
*/
public void setExecutionTimeoutMinutes(int executionTimeoutMinutes) {
- this.executionTimeoutMinutes = executionTimeoutMinutes;
+ this.executionTimeout = executionTimeoutMinutes * MINUTE;
+ }
+
+ /**
+ * Public setter for the execution timeout in milliseconds. Defaults to 30 minutes.
+ * @param executionTimeout
+ */
+ public void setExecutionTimeout(long executionTimeout) {
+ this.executionTimeout = executionTimeout;
}
/**
@@ -133,7 +143,7 @@ public class MessageOrientedStep extends AbstractStep {
*/
private void waitForReply(Long expectedJobId) {
long timeout = pollingInterval;
- long maxCount = executionTimeoutMinutes * 1000 * 60 / timeout;
+ long maxCount = executionTimeout / timeout;
long count = 0;
// TODO: use a ReponseCorrelator?, or just a SynchronousChannel
diff --git a/spring-batch-integration/src/test/java/org/springframework/batch/integration/job/MessageOrientedStepTests.java b/spring-batch-integration/src/test/java/org/springframework/batch/integration/job/MessageOrientedStepTests.java
index 52a127916..55e619668 100644
--- a/spring-batch-integration/src/test/java/org/springframework/batch/integration/job/MessageOrientedStepTests.java
+++ b/spring-batch-integration/src/test/java/org/springframework/batch/integration/job/MessageOrientedStepTests.java
@@ -107,6 +107,8 @@ public class MessageOrientedStepTests {
@Test
public void testExecuteWithTimeout() throws Exception {
try {
+ step.setExecutionTimeout(1000);
+ step.setPollingInterval(100);
step.execute(jobExecution.createStepExecution(step));
fail("Expected StepExecutionTimeoutException");
}